fopen_s ubuntu 下未解决
fopen_s not resolved under ubuntu
我想打开文件,所以我使用 ubuntu 下的 fopen_s 功能。虽然我 #include <stdio.h>
如此处所读 http://en.cppreference.com/w/c/io/fopen,但我得到错误函数未在范围内声明。
请帮助我我做错了什么,以及如何解决运行?
FILE *fp;
fopen_s(&fp, strFilename.c_str(), "rb");
if (fp == NULL){
cout << "cannot open " << strFilename.c_str();
return false;
}
fclose(fp);
在 Linux 上搜索 glibc 没有发现 fopen_s
() 在 Linux.
上的 glibc 中实现的证据
我发现 POSIX specification 中没有提到 fopen_s
()。在我看来 fopen_s
() 是一个不可移植的库函数,仅在 Microsoft Windows.
上实现
尝试使用 fopen()
#ifdef __unix
#define fopen_s(pFile,filename,mode) ((*(pFile))=fopen((filename), (mode)))==NULL
#endif
参考:Is there a way to use fopen_s() with GCC or at least create a #define about it?
我想打开文件,所以我使用 ubuntu 下的 fopen_s 功能。虽然我 #include <stdio.h>
如此处所读 http://en.cppreference.com/w/c/io/fopen,但我得到错误函数未在范围内声明。
请帮助我我做错了什么,以及如何解决运行?
FILE *fp;
fopen_s(&fp, strFilename.c_str(), "rb");
if (fp == NULL){
cout << "cannot open " << strFilename.c_str();
return false;
}
fclose(fp);
在 Linux 上搜索 glibc 没有发现 fopen_s
() 在 Linux.
我发现 POSIX specification 中没有提到 fopen_s
()。在我看来 fopen_s
() 是一个不可移植的库函数,仅在 Microsoft Windows.
尝试使用 fopen()
#ifdef __unix
#define fopen_s(pFile,filename,mode) ((*(pFile))=fopen((filename), (mode)))==NULL
#endif
参考:Is there a way to use fopen_s() with GCC or at least create a #define about it?