在linux板中写一个标识并存储为文件,依据读取的文件标识执行相应的功能
- aa = fopen("file_1.txt","r+");
- if(NULL ==fp)
- {
- printf("fail to open file")
- return 0;
- }
fail to open file 并报错segmentation fault
- aa = fopen("file_1.txt","a+");
- if(NULL ==fp)
- {
- printf("fail to open file")
- return 0;
- }
第一次会新建文件,不报错,但是写数据会在file_1.txt的文件末尾追加
- aa = fopen("file_1.txt","w+");
- if(NULL ==fp)
- {
- printf("fail to open file")
- return 0;
- }
第一次会新建文件,进行写覆盖操作,第二次打开file_1.txt文件里面的内容为零
通过将文件指针回到首位置的方式不能解决文件内容被清零的问题
- aa = fopen("file_1.txt","r+");
- if(NULL ==fp)
- {
- printf("fail to open file")
- aa = fopen("file_1.txt","w+");
- }
首先以读写的方式打开失败,进入写覆盖的操作(新建文件-只执行一次(当文件一直存在的情况下)),等下次再重启打开文件file_1.txt时是以r+的方式打开,因此里面的内容为上一次写的值(不会被清零)
说明:
r”:以只读方式打开,文件指针位于文件的开头。
“r+”:以读和写的方式打开,文件指针位于文件的开头。
“w”:以写的方式打开,不管原文件是否有内容都把原内容清空掉,文件指针位于文件的开
头。
“w+”:同上,不过当文件不存在时,前面的“w”模式会返回错误,而此处的“w+”则会
创建新文件。
“a”:以追加内容的方式打开,若文件不存在会创建新文件,文件指针位于文件的末尾。与
“w+”的区别是它不会清空原文件的内容而是追加。
“a+”:以读和追加的方式打开,其它同上。