1、errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );

注:fopen_s能过创建文件,但无法创建目录

打开方式说明
r以只读方式打开文件,该文件必须存在。
r+以读/写方式打开文件,该文件必须存在。
rb+以读/写方式打开一个二进制文件,只允许读/写数据。
rt+以读/写方式打开一个文本文件,允许读和写。
w打开只写文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件。
w+打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)。
a+以附加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符 不保留)。
wb以只写方式打开或新建一个二进制文件,只允许写数据。
wb+以读/写方式打开或建立一个二进制文件,允许读和写。
wt+以读/写方式打开或建立一个文本文件,允许读写。
at+以读/写方式打开一个文本文件,允许读或在文本末追加数据。
ab+以读/写方式打开一个二进制文件,允许读或在文件末追加数据。

eg:

int main()
{
 char* fileName0 = "F:\\a\\t0.txt";
 char* fileName1 = "F:\\a\\b\\t1.txt";
 char* newName0 = "F:\\a\\t3.txt";
 char string[60],c;
 long sizeOfF0 = 0;
 int maxCount = 10,i=0;
 FILE* f0, *f1;
 fopen_s(&f0, fileName0, "w+");
 fopen_s(&f1,fileName1,"a+");
 fprintf(f0,"你好呀!我是zoghin\n");
 fprintf(f1, "Hello World! t1.txt\n");
 rewind(f0);                       //将文件流指针重定位至开始位置
 rewind(f1);
 while ((c=fgetc(f0)) !=-1) {
  printf("%c",c);
 }                                 //居然能打印中文
 fgets(string, maxCount, f1);
 for (i = 0; i < maxCount; i++) {
  printf("%c",string[i]);
 }                                 
 printf("\n");
 fseek(f0, 0L, SEEK_END);          //重定位文件流指针
 sizeOfF0 = ftell(f0);             //给出当前流指针的位置
 printf("%d\n",sizeOfF0);          //确定文件大小
 fclose(f0);
 fclose(f1);
 rename(fileName0, newName0);     //重命名文件
 while (true)
 {

}
 return 0;
}

04-14 00:06