C语言中常用的文件操作

函数原型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
* 打开一个流, 这个函数会将一个流和文件描述符关联, 流的模式必须和文件描述符的模式相匹配.
* @param path 待打开文件的路径
* @param mode 以何种模式打开文件, r 可读 read, w 可写 write, a 可写 流的位置是文件末尾, append
* @return 指向FILE结构体的指针, 使用完毕通过fclose释放
*/
FILE * fopen(const char * restrict path, const char * restrict mode);

/**
* 关闭一个流
* @param stream 使用fopen打开的流
*/
int fclose(FILE *stream);

/**
* 这个函数用来设置文件的流位置指示器, 新的位置用字节来衡量
* @param stream 需要重新设置位置指示器的流
* @param offset 偏移量, 单位是字节
* @param wherece SEEK_SET, SEEK_CUR, or SEEK_END 分别表示相对于文件开头、当前位置指示器和文件末尾
* @return 如果成功返回0, 否则返回-1同时设置全局变量errno
*/
int fseek(FILE *stream, long offset, int whence);

/**
* #include <sys/stat.h>
* 根据文件描述符, 获取文件信息
*
*/
int fstat(int fildes, struct stat *buf);

/**
* fread从stream指向的流中读取nitems个对象, 每个对象size个字节大小, 保存到ptr指向的内存区域中
* @param ptr 读取的字节保存的内存区域
* @param size 读取的n项,每项的大小
* @param nitems 读取n项
* @param stream 从哪个流中读
* @result 根据文件位置描述符, 返回读取的对象的个数, 如果发生错误或者到达文件末尾, 返回值是一个小的对象数(或0)
*/

size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);


/**
* fwrite函数向stream指定的流中写入nitems个对象, 每个size个字节长, 这些对象从ptr指向的内存区域中获得
* @param ptr 待写入对象保存的内存区域
* @param size 待写入对象每个的大小
* @param nitems 待写入对象的个数
* @param stream 写入到哪个流
* @return 根据文件位置指示器,向流中写入对象的个数
*/
size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);