码迷,mamicode.com
首页 > 其他好文 > 详细

文件系统操作

时间:2018-04-10 04:48:09      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:指定   amp   lseek   文本文件   文件   mod   设置   系统   const   

一、文件操作系统调用

1 /* 创建
2  * 参数:
3  *        @filename:文件名
4  *        @mode:指定新建文件的存取权限,它同 umask 一起决定文件的最终权限(mode & umask),umask 代表了文件在创建时需要去掉的一些存取权限。
5  *                umask 可通过系统调用 umask() 来改变
6  */
7 int creat(const char *filename, mode_t mode);
8 /* 该调用将 umask 设置为 newmask,然后返回旧的 umask,它只影响读、写和执行权限 */
9 int umask(int newmask);
1 /* 文件打开,此函数有两种形式
2  *         pathname 为要打开的文件名(包含路径名称,默认是在当前路径下)
3  *        flags 为文件打开标志
4  *        mode 为文件访问权限
5  */
6 int open(const char *pathname, int flags);
7 int open(const char *pathname, int flags, mode_t mode);

  flags 文件打开标志:

  技术分享图片

  mode 文件访问标志:

  技术分享图片

 

1 /* 文件读写
2  *         buff 为指向缓冲区的指针
3  *        length 为缓冲区的大小(以字节为单位)
4  */
5 int read(int fd, const void *buf, size_t length);    //实现从文件描述符 fd 所指定的文件中读取 length 个字节到 buf 所在的缓冲区中,返回实际读取的字节数
6 int write(int fd, const void *buf, size_t length);    //实现把 length 个字节从 buf 指向的缓冲区中写到文件描述符 fd 所指向的文件中,返回实际写入的字节数
1 /* 定位,随机指定位置进行读写,此函数将文件读写指针相对 whence 移动 offset 个字节,操作成功时,返回文件指针相对于文件头的位置 */
2 int lseek(int fd, offset_t offset, int whence);

  参数 whence 的值如下:

  技术分享图片

  技术分享图片

1 /* 关闭 */
2 int close(int fd);

 

 二、C库函数调用

1 /* 打开,用于打开指定文件,mode 为打开模式 */
2 FILE fopen(const char *path, const char *mode);

  打开模式的标志如下:

  技术分享图片

  b 用于区分二进制文件和文本文件,但Linux中不区分二进制文件和文本文件

 1 /* 读写 */
 2 int fgetc(FILE *stream);
 3 int fputc(int c, FILE *stream);
 4 char *fgets(char *s,int n, FILE *stream);
 5 int fputs(const char *s,FILE *stream);
 6 int fprintf(FILE *stream, const char *format, ...);
 7 int fscanf(FILE *stream, const char *format, ...);
 8 //实现从流(stream)中读取 n 个字段,每个字段为 size 个字节,并将读取的字段放入 ptr 所指的字符数组中,返回实际已读取的字段数
 9 //当读取的字段数小于 num 时,可能是在函数调用时出现了错误,也可能是读到了文件末尾。因此要通过调用 feof() 和 ferror() 来判断
10 size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
11 //实现从缓冲区 ptr 所指的数组中把 n 个字段写到流(stream)中,每个字段长为 size 个字节,返回实际写入的字段数
12 size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
13 
14 /* 读写过程中的定位函数 */
15 int fgetpos(FILE *stream, fpos_t *pos);
16 int fsetpos(FILE *stream, const fpos_t *pos);
17 int fseek(FILE *stream, long int offset, int whence);
1 /* 关闭 */
2 int fclose(FILE *stream);

  技术分享图片

 

  技术分享图片

 

文件系统操作

标签:指定   amp   lseek   文本文件   文件   mod   设置   系统   const   

原文地址:https://www.cnblogs.com/kele-dad/p/8764107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!