使用方法:
首先看fopen的代码:
FILE* fp = nullfp = 差漏fopen(filename,"w+")
if(fp!=null)
{
// 打开文件成功
}
再来看fopen_s的用法
FILE* fp = 培庆悄nullerrno_t err 配渣= 0
err = fopen_s(&fp,filename,"w+")
if(err==0)
{
// 打开文件成功
}
你的程序中,第十旅孝返行,拆饥fopen_s(&input,"./in.txt","r")在,"./in.txt"的第一个双引号号和点之间,多出了一个看不见的字符,把这个不可见字符删除,
问题就解决慎段了。
fopen_s,_wfopen_s打开一个文件,这些版本比fopen,_wfopen在安全性上都有增强。
使用方法:
errno_t fopen_s( FILE** pFile, const char *filename, const char *mode )
errno_t _wfopen_s( FILE** pFile, const wchar_t *filename, const wchar_t *mode )
通过打开的文件fopen_s和_wfopen_s不是可共享。如果需要先设置为可共享一个文历档败件,则使用_fsopen、_wfsopen与适当的共享模式常量,肢颤例如,_SH_DENYNO为读/写的共享。
fopen_s函数打开的文件指定的filename._wfopen_s是宽字符版本的fopen_s参数与_wfopen_s是宽字符字符串。_wfopen_s和fopen_s的行为相同 ; 否则。fopen_s可以接受的有效执行蠢卖 ; 在文件系统上的路径 UNC 路径和涉及到映射的网络驱动器的路径所接受的fopen_s,只要正在执行代码的系统有权访问该共享,或在执行时映射的网络驱动器。当构造路径fopen_s、 不要臆测可用性驱动器、 路径或网络共享的执行环境中。您可以使用正斜杠 (/) 或反斜杠 (\),作为路径中的目录分隔符。这些函数将验证它们的参数。如果pFile,filename,或mode为 null 的指针,这些函数生成无效参数异常,如中所述参数验证.检查返回值,是否函数成功执行该文件的任何进一步 *** 作之前,请参阅。如果发生错误,则返回的错误代码和全局变量errno设置。有关详细信息,请参阅errno、_doserrno、_sys_errlist 和 _sys_nerr.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)