LinuxIO操作

一,文件IO操作
(一)系统调用
1,creat函数,int creat(const char *filename, mode_t mode)
     创建文件。参数1为文件名,参数2为创建模式(如0777),表示文件的所有者,所在组,其它者对文件的可读可写可执行的权限。
2,open函数,int open(const char *pathname, int flags, mode_t mode)
     打开文件。两种调用方式,区别在于多一个参数3。参数1为文件名,参数2为标志(O_RDONLY只读,O_RDWR读写,O_CREAT如不存在则创建,O_NOBLOCK非阻塞),参数3为创建模式。如果使用了O_CREAT标志,则必需加上参数3,其余不需。成功后返回一个文件描述符fd。注意区分标志的模式中的读写相关的设定,标志只说明此次操作是什么行为,即使模式指定了文件是可读写的,但假如这一次open设定标志 为只读,那在此次操作中是不可写的。
3,close函数,int close(int fd)
      关闭一个文件。参数是open调用后返回的文件描述符。
4,read函数,int read(int fd, const void *buf, size_t length)
      从fd指定的文件中读一段数据放到buf中。参数1为文件描述符,参数2为读取的数据放在哪个缓冲区,参数3是欲读取的字节数。返回值是实际读到的字节数。
5,write函数,int write(int fd, const void *buf, size_t length)
      把buf中的某段数据写到fd指定的文件中。参数1为文件描述符,参数2为要写的数据放在哪个缓冲区,参数3是欲写入的字节数。返回值是实际写入的字节数。
6,lseek函数,int lseek(int fd, offset_t offset, int whence)
     将文件读写指针相对whence移动offseet个字节。参数1为文件描述符,参数2为移动的字节数,可取负值表示向前移动,参数3是读写指针所在位置,可取SEEK_SET相对文件开头,SEEK_END相对文件末尾,SEEK_CUR相对当前读写指针位置。返回值是文件指针相对于文件头的位置。
7,access函数,int access(const char *pathname, int mode)
      判断文件是否可进行读写等操作。参数1为文件名,参数2为要判断的操作组合,如R_OK文件可读,F_OK文件存在等。测试成功时返回0,有任意一个不满足返回-1。
8,fstat/stat函数,int fstat(int fd, struct stat *buf)/int stat(const char *file_name, struct stat *buf)
      将文件状态返回到buf结构体中,比如文件大小等,功能强大。两函数不同处在于参数1是文件名还是文件描述符。
9,getcwd函数,char *getcwd(char *buffer, size_t size)
      把当前路径存放到buffer中,如果缓冲区太小,返回-1。
10,mkdir函数,int mkdir(char *dir, int mode)
      创建一个新目录。
(二)C库函数
1,fopen函数,FILE *fopen(const char *filename, const char *mode)
      打开文件。参数1为文件名,参数2为打开模式,如r,rb,w,wb,w+,r+,a+,b用来区分二进制文件和文本文件,但linux系统不区分,所以参数中的b可以不用加。
2,fclose函数,int fclose(FILE *stream)
      关闭文件。
3,fread函数,size_t fread(void *ptr, size_t size, size_t n, FILE *stream)
      从文件读取数据。从stream文件中读取n个字段,每个字段size个字节,读到ptr缓冲区中。返回值是实际读到的字节数。
4,fwrite函数,size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)
      写数据到文件。从ptr缓冲区中读取n个字段,每个字段size个字节,写到stream文件中。返回值是实际写入的字节数。
5,fgetc函数,int fgetc(FILE *stream)
      从文件中读一个字符。
6,fputc函数,int fputc(int c, FILE *stream)
      写一个字符到文件。
7,fscanf函数,int fscanf(FILE *stream, char *format[,argument...])
      从一个流中进行格式化输入。
8,fprintf函数,int fprintf(FILE *stream, char *format[,argument...])
      格式化输出到一个流中。与之类似的有一个重要的sprintf函数,参数1换成一个字符串指针,也就是格式化输出到一个字符串指针中。
9,fseek函数,int fseek(FILE *stream, long offset, int whence)
      移动文件读写指针。
10,ftell函数,long ftell(FILE *stream)
      返回当前文件读写指针。通常先用fseek将读写指针置尾,再调用此函数得到文件大小,再用fseek将指针置首恢复。
11,feof函数,int feof(FILE *stream)
      检测流上的文件结束符,若到结尾则返回1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值