假设我在C中创建一个需要使用临时文件的程序.在/ tmp中创建临时临时文件可能不是一个好主意.是否有函数或OS调用为我提供临时文件名,以便我可以开始写入和读取它?
您可以将此mkstemp(3)
功能用于此目的.另一种选择是tmpfile(3)
功能.您选择哪一个取决于您是希望将文件作为C库文件流(哪个tmpfile
)或直接文件描述符(mkstemp
)打开.tmpfile
编程完成后,该功能也会自动删除文件.
使用这些功能的优点是它们可以避免在确定唯一文件名和创建文件之间的竞争条件 - 例如,两个程序不会同时尝试创建同一个文件.
有关更多详细信息,请参阅这两个函数的手册页.
问题是如何生成临时文件名.mkstemp和tmpfile都没有为调用者提供名称,它们分别返回文件描述符或文件句柄.