文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux应用程序开发学习(一)文件IO操作

Linux应用程序开发学习(一)文件IO操作

时间:2010-05-19  来源:ruixiang

      在DM365开发板来之前,准备重新把Linux应用程序开发的部分温习一遍,不必细看,捡其重要部份摘之。以国嵌视频为主,华清的两本应用开发书为辅,APUE为后续参考。

一,文件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。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载