9、目录IO
1.打开目录文件:opendir()
2.读目录:readdir()
3.关闭目录:closedir()
- opendir()
DIR *opendir(const char *name);
功能:打开目录文件并获得目录流指针
参数:
name:目录名
返回值:
成功:目录流指针
失败:NULL
- closedir()
int closedir(DIR *dirp);
功能:关闭目录文件
参数:
dirp:目录流指针
返回值:
成功:0
失败:-1
- readdir()
struct dirent *readdir(DIR *dirp);
功能:从目录流中读取数据
参数:
dirp:目录流指针
返回值:
成功:struct dirent指针,代表读到的文件信息
失败:NULL
文件末尾:NULL

int mkdir(const char *pathname, mode_t mode);
功能:创建一个目录文件(文件夹)
参数:
pathname:目录名称
mode:目录文件的操作权限
返回值:
成功:0
失败:-1
出错处理函数:
strerror:
char *strerror(int errnum);
功能:将错误码转换成错误信息字符串
参数:
errnum:错误码:errno
返回值:
成功·:错误码对应的字符串首地址
失败:NULL
perror
void perror(const char *s);
功能:打印自己的出错处理信息和系统给出的出错原因
10、framebuff
1.什么是framebuffer
帧缓存、帧缓冲技术。
是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,通过设备,文件可以实现应用层向显存空间的数据写入,从而实现像素点的绘制。
RGB888(四字节 RGB565(两字节
2.如何操作framebuffer
内存映射技术:实现 显示空间和 用户空间的内存映射。向用户空间写入RGB颜色值,实现显示空间的写入。
- 打开显示设备文件/dev/fb0
- 获取显示设备相关参数:分辨率、像素点的位数(位深度)
- 建立内存映射
- 写入RGB颜色值
- 解除内存映射
- 关闭显示设备
2.vi /usr/include/linux/fb.h
struct 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_WRITE
flags:MAP_SHARED(共享映射区域)
fd:要映射的文件
offset:映射偏移量 0
返回值:
成功:映射到的用户空间首地址
失败:MAP_FAILED((void*)-1)
5.munmapint munmap(void *addr, size_t length);