无法使用tmpfnam在C++中的Windows上创建临时文件
Unable to create a temporary file on Windows in C++ using tmpfnam
我试图在C++程序中创建一个临时文件,方法是调用tmpfnam
函数来获取临时文件名,并用它来创建要写入的文件,但我的代码无法创建临时文件。但是,当我使用用户提供的文件名或字符串常量而不是tmpfnam
中的临时名称时,文件创建工作绝对正常。这里有一个例子:
std::tmpnam(fname); //does not work
std::fstream f(fname,std::ios::out);
char* fname = "myfile.txt"; //works
std::fstream f(fname,std::ios::out);
我检查了情况2中的文件是在与源文件相同的目录中创建的,但不是在情况1中。我也试着在管理员权限下运行这个程序,但仍然没有成功。知道为什么会这样吗?
你试过这种方法吗?
char fname[L_tmpnam];
if (std::tmpnam(fname)) {
std::fstream f(fname,std::ios::out);
// ...
}
希望它能有所帮助。
相关文章:
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- 绕过 Windows 中的 __declspec(dllimport) 到 Linux 项目的转换
- 以原子方式将彩色文本写入 Windows 中的控制台
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- 无法在windows中的virtualenv中安装psycopg2
- 从 Windows 中的其他应用程序 GUI 中提取数据
- 为什么我不能在 Windows 中的 rabbitmq 中创建队列?
- 跨平台 c++ 与 Linux 和 Windows 中的 c# 集成
- 我们如何劫持DLL以锁定Windows中的所有目录以进行验证
- QT库链接Windows中的错误
- Windows中的主音量控制,在启动时运行
- 尽管它在Linux中起作用,但无法从Windows中的Pclvisualizer中删除点云
- Windows中的CodeBlock中的设置OpenFramework
- 代码:: blocks printf double windows中的固定精度
- 在C 中将多个客户端连接到Windows中的单个服务器中的多线程
- 如何从Windows中的可执行文件中推断出文件/目录路径
- 如何将共享库 *DLL与Windows中的cmake链接
- 可以在不在Windows中的ROS的情况下安装KDL_PARSER
- 程序在Windows中的DLL边界上使用嵌入式Python/C 代码崩溃
- 如何从Windows中的进程中读取Unicode字符串