系统调用I/O:man手册第二章
注意:fd是在文件IO(系统调用I/O)中贯穿始终
文件IO相关函数:open , close , read , write , lseek
(1)open:变参实现
涉及问题:
1、文件IO与标准IO的区别
区别:响应速度&吞吐量
提醒:标准IO与文件IO不可以混用
转换:fileno , fdopen;
示例代码:
putc("a");
write(1 , "b" , 1);
putc("a");
write(1 , "b" , 1);
//输出结果为:bbaa
2、IO效率问题
3、文件共享:多个任务共同操作一个文件或者协同完成任务
思考:删除一个文件中的第10行
法一:单进程单线程
法二:多进程(涉及进程间通信),或者多线程
法三:truncate()/ftruncate()
4、原子操作
作用:解决竞争与冲突
举例函数:tmpnam
5、程序中的重定向:dup , dup2
更加强调编程的宏观思维,不要以为自己在写main函数,要以模块的思维去编程,不然怎么写的程序都是错的。
#include <stdio.h>
#include <stdlib.h>
int main()
{
/***********************************************/
puts("hello!");
exit(0);
}
6、同步:sync , fsync , fdatasync
sync:commit buffer cache to disk
fdatasync:只刷数据不刷亚数据
7、fcntl , ioctl
fcntl(管家级别的函数):文件描述符所变的魔术几乎都来源于该函数
ioctl:设备相关的内容
/*****************************************************************/
持续更新中。