打开文件fopen_s
在进行文件读写等操作的时候,首先需要调用fopen()函数打开文件,先得到文件的指针或者句柄。在打开文件时候,需要设置打开文件的标志。一些常见的标志如图所示:
fopen("newfile.txt", "rw, ccs=UTF-8");//默认为ANSI
fopen是C标准IO库的函数,与非C标准库函数open()函数相比,用fopen打开的文件读写是带缓存的,即用fwrite向文件里写一个字节,一般来讲它不会立刻调用write将该操作提交给kernel,而是积累到一定程度再一起写。
在Windows中,文本方式写时,存在”\n”à”\r\n”的转换,而二进制方式无转换。文本方式读时存在”\r\n”à至”\n”的转换,而二进制方式无转换。在linux中文本方式的读写与二进制方式的读写无差别,不存在回车换行间的转换。这样当直接在windows和linux中共享文件时,将会出现与回车换行相关的问题。
fopen_s()函数是用于fopen()的新的安全版本。现在都推荐使用fopen_s()来打开文件。它的调用方法:
FILE *pfile=NULL;
errno_t err = fopen_s(&pfile,FILENAME,"wb+");
if(err!=0 || pfile==NULL)
{
return -1;
}
当完成了文件IO之后,最后不要忘记了调用fclose()函数将文件关闭。比如:
fclose(pfile);