Linux应用软件编程:目录IO framebuffer 📅 发布时间:2026/8/25 19:34:07 👁 浏览次数: 9、目录IO1.打开目录文件opendir2.读目录readdir3.关闭目录closediropendirDIR *opendir(const char *name);功能打开目录文件并获得目录流指针参数name目录名返回值成功目录流指针失败NULLclosedirint closedir(DIR *dirp);功能关闭目录文件参数dirp目录流指针返回值成功0失败-1readdirstruct dirent *readdir(DIR *dirp);功能从目录流中读取数据参数dirp目录流指针返回值成功struct dirent指针代表读到的文件信息失败NULL文件末尾NULLint mkdir(const char *pathname, mode_t mode);功能创建一个目录文件文件夹参数pathname目录名称mode目录文件的操作权限返回值成功0失败-1出错处理函数strerrorchar *strerror(int errnum);功能将错误码转换成错误信息字符串参数errnum错误码errno返回值成功·错误码对应的字符串首地址失败NULLperrorvoid perror(const char *s);功能打印自己的出错处理信息和系统给出的出错原因10、framebuff1.什么是framebuffer帧缓存、帧缓冲技术。是Linux为显示设备提供的一个接口把显存抽象后的一种设备通过设备文件可以实现应用层向显存空间的数据写入从而实现像素点的绘制。RGB888四字节 RGB565两字节2.如何操作framebuffer内存映射技术实现 显示空间和 用户空间的内存映射。向用户空间写入RGB颜色值实现显示空间的写入。打开显示设备文件/dev/fb0获取显示设备相关参数分辨率、像素点的位数(位深度)建立内存映射写入RGB颜色值解除内存映射关闭显示设备2.vi /usr/include/linux/fb.hstruct fb_var_screeninfo vinfo;ioctl(fb,FBIOGET_VSCREENINFO,vinfo)3.mmap()void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);功能建立文件和用户空间的内存映射参数addr要映射的用户空间首地址NULL让内核选取空间并将空间首地址返回length要映射的空间大小prot对映射空间的读写执行权限PROT_READ | PROT_WRITEflagsMAP_SHARED共享映射区域fd要映射的文件offset映射偏移量 0返回值成功映射到的用户空间首地址失败MAP_FAILEDvoid*-15.munmapint munmap(void *addr, size_t length);