c - 您如何获取要在 Linux 中使用的临时文件的文件名?

标签 c linux

假设我正在用 C 语言创建一个需要使用临时文件的程序。在/tmp 中创建临时文件可能不是一个好主意。是否有函数或操作系统调用为我提供临时文件名称,以便我可以开始写入和读取它?

最佳答案

您可以使用 mkstemp(3)为此目的而发挥作用。另一种选择是 tmpfile(3)功能。 您选择哪一个取决于您是希望将文件作为 C 库文件流(tmpfile 做的)还是直接文件描述符 (mkstemp) 打开. tmpfile 函数还会在程序结束时自动删除该文件。

使用这些函数的优点是它们避免了确定唯一文件名和创建文件之间的竞争条件——例如,这样两个程序就不会尝试同时创建同一个文件。

有关详细信息,请参阅这两个函数的手册页。

关于c - 您如何获取要在 Linux 中使用的临时文件的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647/

相关文章:

linux - 此命令如何在 Rpm 包中查找文件

c - C中文件的结构内存分配,只有两个变量起作用

c - 在自定义结构中管理可动态分配的数组

java - 如何在Linux中执行Shell脚本?

c - linux 内核函数 page_address()

MySQL 8.0 找不到数据字典版本号

linux - 如何将 systemd-nspawn 与 --network-veth 和 --port(-n 和 -p)一起使用?

c - Linux 中多线程的信号处理

检查 ISBN 以查看其在 C 语言中是否有效

c - 线程间通信,线程之间的切换