什么是POSIX?我已阅读维基百科的文章,每次遇到这个词时我都会阅读它.事实是,我从来没有真正理解它是什么.
任何人都可以通过解释"对POSIX的需求"向我解释一下吗?
我正在尝试用C++创建一个临时文本文件,然后在程序结束时删除它.我没跟谷歌好运.
你能告诉我使用哪些功能吗?
下面的答案告诉我如何创建临时文件.如果我只是想创建一个文件(tmp.txt)然后将其删除怎么办?我该怎么办?
我做了一个关于"匿名inode"的谷歌搜索,它似乎与epoll有关......但究竟是什么呢?
我想从一些C代码(不是C++或C#)在Windows中创建一个唯一的临时目录.我想这样做,这样我就可以在目录中放入一些临时文件,然后在完成后轻松删除它们(通过递归删除目录).
我基本上是在寻找相当于linux的
mkdtemp
功能.有一个C#的答案在这里,并在回应这个问题
建议使用升压.但由于我使用C,这些解决方案对我不起作用.
到目前为止我能够提出的最好的是使用
GetTempFileName
后跟CreateDirectory,但问题是如果我要求
GetTempFileName
创建一个唯一的文件名,它也会创建文件(我不想要,因为我想建立一个目录).
相关地,
GetTempPath从环境变量返回用户临时文件夹的位置 - 但由于我想创建我自己可以安全删除的目录,我仍然需要在它返回的任何路径中创建一个目录.
看起来如果我想要创建一个唯一的目录,我将不得不创建一个临时文件,获取名称,删除它,然后创建一个具有相同名称的目录 - 这听起来非常混乱.还有其他想法吗?
我正在尝试在系统临时文件夹中创建一个唯一的临时目录,并且已经阅读了tmpnam()的安全性和文件创建问题.
我写了下面的代码,并想知道它是否会满足这些问题,我是否正确使用了tmpnam()函数并抛出了filesystem_error?我是否应该为其他事情添加检查(例如temp_directory_path,它也会引发异常)?
// Unique temporary directory path in the system temporary directory path.
std::filesystem::path tmp_dir_path {std::filesystem::temp_directory_path() /= std::tmpnam(nullptr)};
// Attempt to create the directory.
if (std::filesystem::create_directories(tmp_dir_path)) {
// Directory successfully created.
return tmp_dir_path;
} else {
// Directory could not be created.
throw std::filesystem_error("directory could not be created.");
}
Run Code Online (Sandbox Code Playgroud)