LCD屏应用层  设备文件是  /dev/fb0(设备节点)


可以通过api函数获取屏幕的相关参数----ioctl


相关应用层开发求助与网络方法(framebuffer应用层开发)

在应用层是不会直接操作LCD设备文件,是通过LCD屏幕的映射内存进行操作,进而操作LCD屏


方法:采用映射方式,将屏幕映射到当前进程空间 利用mmap函数

之后就可以在屏幕中进行写入操作。


不仅仅可以映射设备文件也可以映射普通文件

eg:w.c

#include <stdio.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
/*
LCD屏(framebuffer)应用层  设备文件一般为/dev/fb0
  获取屏幕的参数  使用ioctrl
  应用层使用read即可
  操作:采用内存映射方式,将屏幕映射到当前进程空间api--mmap
适用于屏幕
通过内存映射的方式写入内容   内采映射api-mmap

*/
int main()
{
	int fd = open("1.txt",O_RDWR);//先打开相应的文件
	char *addr =(char *)mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
	/*mmap参数------注意不能映射空文件
	1.映射的起始地址,一般为NULL,让内和自动选择
	2.映射的长度
	3.操作方式
	4.共享还是私有
	5.指定的文件描述符
	6.偏移量
	*/
	if(addr == (void *)-1)//判断内存映射是否成功
	{
		perror("mmap");
		return -1;
	}
	memset(addr,0,1024);//将开辟的映射空间先进行清0
	char buf[100];

	while(1)
	{	
		scanf("%s",buf);
		strcat(addr,buf);
	}
	return 0;	
}

r.c

#include <stdio.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
/*
LCD屏(framebuffer)应用层  设备文件一般为/dev/fb0
  获取屏幕的参数  使用ioctrl
  应用层使用read即可
  操作:采用内存映射方式,将屏幕映射到当前进程空间api--mmap
适用于屏幕
通过内存映射的方式写入内容   内采映射api-mmap

*/
int main()
{
	int fd = open("1.txt",O_RDWR);//先打开相应的文件
	char *addr =(char *)mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
	/*mmap参数------注意不能映射空文件
	1.映射的起始地址,一般为NULL,让内和自动选择
	2.映射的长度
	3.操作方式
	4.共享还是私有  共享属于直接操作源文件     私有相当于拷贝一份文件进行操作,并没有操作到源文件
	5.指定的文件描述符
	6.偏移量
	*/
	if(addr == (void *)-1)//判断内存映射是否成功
	{
		perror("mmap");
		return -1;
	}
	getchar();
	while(1)
	{	
		printf("%s\n",addr);
		sleep(1);
	}
	return 0;	
}