您的位置:首页 > 运维架构 > Linux

linux中文件操作函数

2017-03-18 17:18 141 查看
系统调用

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库函数的都是
4000
带f开头的,并且 都是 带缓冲区的,会先把缓冲区写满,然后一次行写入,效率高

所以在使用U盘的时候直接拔出有可能会得到损坏的文件的原因就是,操作系统一般是使用c库函数,可能缓冲区还没有写满,所以有部分文件还未写入磁盘;

比较:系统调用vsc库函数

好处: 可以直接对标准输入输出进行更加细腻的控制,

坏处:1. 不兼容,不同的版本可能有不同的系统调用

2. 降低磁盘寿命,每一次系统调用,都会启动一次读写操作,哪怕是一个整数,所以

10000次写入会进行10000次系统调用,效率低,并且磁盘寿命取决于磁盘寻址时间,所

以频繁的启动读写操作,会减少磁盘寿命

附加:man [num] [需要查看的命令或函数名]

什么都没有 是指Linux 命令

2 系统调用

3 c语言库函数

5 代表第三方函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: