-1

我试图通过调用tmpfnam函数来获取临时文件名并使用它来创建用于写入的文件来在我的 C++ 程序中创建一个临时文件,但是我的代码无法创建临时文件。但是,当我使用用户提供的文件名或字符串常量而不是使用来自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。我也尝试在管理员权限下运行程序,但仍然没有运气。知道为什么会这样吗?

4

1 回答 1

1

你试过这样吗?

char fname[L_tmpnam];
if (std::tmpnam(fname)) {
    std::fstream f(fname,std::ios::out);
    // ...
}

希望它有所帮助。

于 2012-07-24T20:09:32.503 回答