首页 > 代码库 > 第三章 文件操作
第三章 文件操作
底层文件访问
文件描述符:
0:标准输入
1:标准输出
2:标准错误
write系统调用
把缓冲区buf的前nbytes个字节写入与文件描述符fildes关联的文件中。返回实际写入的字节数。返回0表示未写入,返回-1表示错误。
#include <unistd.h>
size_t write(int fildes,const void *buf,size_t nbytes)
#include<unistd.h>#include<stdlib.h>int main(){ if((write(1,"Here is some data\n",18))!=18) write(2,"A write error has occured on file desciptor 1 \n",46); exit(0);}
输出:
wuchao@:~/linux_program/CH03$ ./writeHere is some data
read系统调用
从与文件描述符fileds相关联的文件里读入nbytes个字节的数据,并放在buffer中,返回实际读入的字节数。返回0表示未读入,-1表示错误。
#include <unistd.h>
size_t read(int fildes, void *buf,size_t nbytes)
#include<unistd.h>#include<stdlib.h>int main(){ char buffer[128]; int nread; nread = read(0,buffer,128); if(nread == -1) write(2,"A read error has occurred\n",26); if((write(1,buffer,nread)) != nread) write(2,"A write error has occurred\n",27); exit(0);}
输出:
wuchao@:~/linux_program/CH03$ echo hello world | ./readhello world
open系统的调用
为了创建一个新的文件描述符,需要使用open
#inlcude <fcntl.h>
int open(const char *path,int oflags);
int open(const char *path,int oflags,mode_t mode);
第三章 文件操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。