文件操作的基本函数
来源:互联网 发布:淘宝客户如何导入微信 编辑:程序博客网 时间:2024/06/06 12:24
- 文件操作的基本函数
- 一标C下的文件操作基本函数
- 1fopen3 fdopen3 freopen3
- 2fclose3
- 3fread3
- 4fwrite3
- 5fseek3
- 6rewind3
- 7ftell3
- 二UC下的文件操作基本函数
- 1creat2
- 2open2
- 3close2
- 4read2
- 5write2
- 6lseek2
- 一标C下的文件操作基本函数
- 文件操作的基本函数
文件操作的基本函数
一、标C下的文件操作基本函数
(1)fopen(3) / fdopen(3) / freopen(3)
#include <stdio.h>FILE *fopen(const char *path, const char *mode);
功能:
主要用于打开指定的文件;
参数:
第一个参数:字符串形式的文件路径名;
第二个参数:操作文件的具体方式,但不能指定文件本身没有的权限;
r - - - - - 以只读的方式打开,stream指向文件的开头;
r+ - - - - 以读写的方式打开,stream指向文件的开头;
w - - - – 以只写的方式打开,若文件存在,会清空原文件中的内容;若不存在,则创建文件,stream指向文件的开头;
w+ - - – 以读写的方式打开,除此外和w相同;
a - - - - - 以追加写入的方式打开,若文件不存在,会创建文件,stream指向文件的末尾;
a+ - - - - 以读写的方式打开,stream指向文件的开头,但写入时会从文件末尾追加写入;(不建议同时进行读取和写入操作)
如果要对二进制文件进行操作,那么在选择具体的方式中应添加字母b;
返回值:
success —- FILE结构体类型的指针,error —- NULL;
struct _IO_FILE { int _flags; char* _IO_read_ptr; ......};typedef struct _IO_FILE FILE;
#include <stdio.h>FILE *fdopen(int fd, const char *mode);
功能:
主要用于将文件描述符对应的文件转换为文件指针后返回,mode代表文件操作的具体方式,此处必须和原先文件描述词读写模式相同;
返回值:
success —- 文件指针,error —- NULL;
#include <stdio.h>FILE *freopen(const char *path, const char *mode, FILE *stream);
功能:
主要用于实现重定向,把预定义的标准流文件定向到由path指定的文件中。
参数:
第一个参数:指定的重定向的字符串形式文件路径名;
第二个参数:文件访问的具体权限,如:”r”表示“只读访问;
第三个参数:流文件,一般使用标准流文件,如:stdin、stdout、stderr;
返回值:
success —- 指向该输出流的文件指针,error —- NULL;
(2)fclose(3)
#include <stdio.h>int fclose(FILE *stream);
功能:
主要用于关闭指定的文件,参数是fopen(3)的返回值;
返回值:
success —- 0,error —- EOF;
(3)fread(3)
#include <stdio.h>size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);/* size_t = long unsigned int */
功能:
主要用于读取指定文件中的内容;
参数:
第一个参数:存放读取内容的地址;
第二个参数:读取数据类型的大小;
第三个参数:读取相同数据类型的个数;
第四个参数:结构体类型的指针,同样是fopen(3)的返回值;
返回值:
success —- 实际读取指定数据类型的个数,error和end-of-file —- 0;(区分应使用feof(3)和ferror(3))
(4)fwrite(3)
#include <stdio.h>size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:
主要向指定的文件中写入内容;
参数:
第一个参数:存放要写入数据空间的地址;
第二个参数:存入数据类型的大小;
第三个参数:存入相同数据类型的个数;
第四个参数:结构体类型的指针,同样是fopen(3)的返回值;
返回值:
success —- 实际存入指定数据类型的个数,error和end-of-file —- 0;(区分应使用feof(3)和ferror(3))
(5)fseek(3)
#include <stdio.h>int fseek(FILE *stream, long offset, int whence);
功能:
主要用于设置stream指向的位置;
参数:
第一个参数:结构体类型的指针,同样是fopen(3)的返回值;
第二个参数:指定的偏移量;
>0 - - - - - - 向后偏移,也就是向文件末尾方向;
0 - - - - - - -偏移量为0;
<0 - - - - - - 向前偏移,也就是向文件开头方向;
第三个参数:指定起始位置;
SEEK_SET - - - - 文件开头位置(向后偏移合理,向前偏移不合理)
SEEK_CUR - - – 文件当前位置(向前向后偏移都合理)
SEEK_END - - – 文件末尾位置(向前向后偏移都合理)
(6)rewind(3)
#include <stdio.h>void rewind(FILE *stream);
功能:
将偏移量设置为文件的开头,即等同与(void) fseek(stream, 0L, SEEK_SET)
,其中0L等于0字节;
(7)ftell(3)
#include <stdio.h>long ftell(FILE *stream);
功能:
主要用于获取当前位置的偏移量,配合fseek(3)可获得文件的大小信息,参数是结构体类型的指针,同样是fopen(3)的返回值;
返回值:
success —- 当前位置的偏移量,error —- -1;
二、UC下的文件操作基本函数
(1)creat(2)
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int creat(const char *pathname, mode_t mode);
功能:
主要用来创建一个文件;
参数:
第一个参数:字符串形式的文件路径名;
第二个参数:创建文件的具体权限,如:0664;
返回值:
success —- 文件描述符,error —- -1;
(2)open(2)
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);
功能:
主要用来打开或创建一个文件;
参数:
第一个参数:字符串形式的文件路径名;
第二个参数:具体的标志如下所示;
其中O_RDONLY | O_WRONLY | O_RDWR必须三者择一
其它标志可根据需要选择:
O_APPEND - - - - 追加写入,即打开文件时文件位置偏移量在文件末尾;
O_CREAT - - - - – 若文件不存在,则创建文件;
O_EXCL - - - - - - -通常与O_CREAT配合使用,若文件不存在,则创建文件,若文件存在,则失败;
O_TRUNC - - - - -若文件存在,则清空文件内容,文件大小变为0字节
第三个参数:创建文件的具体权限,如:0664;
返回值:
success —- 文件描述符,error —- -1;
(3)close(2)
#include <unistd.h>int close(int fd);
功能:
主要用于关闭一个被打开的文件。
参数:
第一个参数:文件描述符,也就是open()的返回值;
(4)read(2)
#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);/* ssize_t = long int; size_t = long unsigned int; */
功能:
主要用于读取指定文件中的内容;
参数:
第一个参数:文件描述符,同样是open()的返回值;
第二个参数:存放读取数据空间的地址;
第三个参数:期望读取的字节数;
返回值:
success —- 实际读取的字节数,error —- -1;
(5)write(2)
#include <unistd.h>ssize_t write(int fd, const void *buf, size_t count);
功能:
主要用于向指定文件中写入内容;
参数:
第一个参数:文件描述符,同样是open()的返回值;
第二个参数:要写入的数据的存储地址;
第三个参数:期望写入的字节数;
返回值:
success —- 实际写入的字节数,error —- -1;
(6)lseek(2)
#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, off_t offset, int whence); //off_t = long int;
功能:
主要用于重新定位文件读写时的偏移量,可以获取文件的大小信息;
参数:
第一个参数:文件描述符,同样是open()的返回值;
第二个参数:指定偏移量;
>0 - - - - - - 向后偏移,也就是向文件末尾方向;
0 - - - - - - -偏移量为0;
<0 - - - - - - 向前偏移,也就是向文件开头方向;
第三个参数:指定起始位置;
SEEK_SET - - - - 文件开头位置(向后偏移合理,向前偏移不合理)
SEEK_CUR - - – 文件当前位置(向前向后偏移都合理)
SEEK_END - - – 文件末尾位置(向前向后偏移都合理)
返回值:
success —- 距离文件开头位置的偏移量,error —- (off_t)-1;
- 文件操作的基本函数
- 文件操作函数:目录的基本操作
- 文件的基本操作
- 文件的基本操作
- 文件的基本操作
- 文件的基本操作
- 文件的基本操作
- 文件的基本操作
- 文件的基本操作
- 基本的文件操作
- 采用win32函数对文件的基本操作
- 由CP函数认识文件的基本操作
- 操作File文件的一些基本打包函数
- 栈的基本操作函数!
- map函数的基本操作
- String的基本操作函数
- 数组操作的基本函数
- HBase操作的基本函数
- STS中修改jsp编码
- PaddlePaddle(v0.10.0)源码方式安装
- obb和android版本问题
- Struts2拦截器
- 洛谷 P1108 低价购买
- 文件操作的基本函数
- 关于shiro学习总结
- 现实的管理
- C语言基础---打印99乘法表
- 自己动手搭建React开发环境之二Babel
- android studio data/data空的以及文件无法导出的问题
- PHP常见函数
- #include
- 搭建私有CA和CA的操作