FILE *fopen(const char *path,const char *mode); //文件名 模式
int fclose(FILE *stream);
fopen 以mode 的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL.
ab 和a+b 为追加模式,在此两种模式下,无 论文件读写点定位到何处,在写数据时都将是在文件末尾添加。
我们使用fseek来强制偏移到文件首部测试一下。
#include <stdio.h>
2 #include <string.h>
3 int main(int argc,char* argv[])
4 {
5 if(argc!=2)
6 {
7 printf("./ELF filename\n");
8 return -1;
9 }
10 FILE *fp;
11 fp=fopen(argv[1],"ab+");
12 if(NULL==fp)
13 {
14 perror("fopen");
15 return -1;
16 }
17 fseek(fp, 0, SEEK_SET);
18 char buf[128]="THISISATEST";
19 fwrite(buf, sizeof(char), strlen(buf), fp);
20 fclose(fp);
21 return 0;
22 }
$ echo 1234 >file
$ cat file
显示——1234
gcc fopen_ab+_ceshi.c
./a.out file
显示——
哈哈 你偏移了也没用。