linux中文件操作函数


系统调用
1. open 函数返回一个整数
例如以只读(O_DRONLY)打开文件,返回值会是一个大于等于3的整数,打开失败返回-1
标准输入文件(STDIN_FILENO) 0
从标准输入读 read(STDIN_FILENO, buf, sizeof(buf)); (操作系统调用)
标准输出(STDOUT_FILENO) 1
标准出错(STDERR_FILENO) 2
2.errno使用方式
使用strerror(errno) 可以得到错误的描述
if( open("a.txt") == -1)
printf("%s\n, strerror(errno));
else close(a.txt);


3.read 函数
read(int fd, void* buf, sizeof(buf));
1.可以读文件;
2.可以从标准输入中读字符串,fd改为STDIN_FILENO即可
4.write
write(int fd, void* buf, sizeof(buf));
1.可以往文件中写入,如果buf 并没有全部用完,则应该使用 strlen(buf)
2.可以往标准输出里写,即显示器,也就相当于 echo “hello world ”的作用一样

c库函数

c库函数的都是带f开头的,并且 都是 带缓冲区的,会先把缓冲区写满,然后一次行写入,效率高
所以在使用U盘的时候直接拔出有可能会得到损坏的文件的原因就是,操作系统一般是使用c库函数,可能缓冲区还没有写满,所以有部分文件还未写入磁盘;

比较:系统调用vsc库函数
好处: 可以直接对标准输入输出进行更加细腻的控制,
坏处:1. 不兼容,不同的版本可能有不同的系统调用
2. 降低磁盘寿命,每一次系统调用,都会启动一次读写操作,哪怕是一个整数,所以
10000次写入会进行10000次系统调用,效率低,并且磁盘寿命取决于磁盘寻址时间,所
以频繁的启动读写操作,会减少磁盘寿命


附加:man [num] [需要查看的命令或函数名]
什么都没有 是指Linux 命令
2 系统调用
3 c语言库函数
5 代表第三方函数




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章