- 在linux中,一切都是文件,目录也是一种特殊文件,对文件操作,大多数情况下使用5个基本函数:open、close、read、write、ioctl(https://blog.youkuaiyun.com/KingCat666/article/details/75269373):把控制信息传递给设备驱动程序。
- 结点(inode):一个特殊的数据块,包含文件长度+在磁盘上的位置
- 目录:保存其他文件的节点号(inode)和名字的文件。
- 设备:/usr/dev,重要的有三个
- /dev/console:系统控制台,接收错误信息和诊断信息
- /dev/tty:控制终端(键盘、显示屏)的别名(逻辑设备)
- /dev/null:空设备,所有写向这个设备的输出都将被丢弃,读这个设备会返回一个文件尾标志,所以在cp中可以当做空文件
cp /dev/null empty_file
- 系统调用:对文件和设备进行访问和控制的函数 unistd.h
设备驱动程序:内核,一组对系统硬件进行控制的底层接口,ioctl()函数。
库函数(stdio.h):比系统调用更高层的接口,效率更高。 - 底层文件访问
进程一般有3个已经打开的文件描述符:0,1,2对应标准输入、输出、错误- write read open close icotl系统调用 unistd.h
- 标准I/O库 stdio.h
fread,fclose;fread,fwrite;f
flush-;fseek-;
fgetc,getc,getchar;
fputc,putc,putchar;
fgets,gets;
printf,fprintf,sprintf;
scanf,fscanf,sscanf. - 文件和目录的维护:利用标准库(stdio.h)和系统调用(unistd.h)
- 扫描目录
- 错误处理
- /proc文件系统
- 高级主题:fcntl和mmap