Gil*_*il' 12
我认为您需要在其他用户可能具有写入权限的目录中创建临时目录.
作为管理员,您应该进行设置,以便每个用户都有自己的TMPDIR(例如使用pam-tmpdir - 甚至更好的每个进程命名空间,但需要更多设置).但是,作为一个应用程序编写者,你不能假设这一点,所以你需要应对一个世界可写的/tmp.
这里的正确功能是mkdtemp,因为mkstemp只能创建常规文件.mkdtemp仅在POSIX.1 2008中引入,因此原则上它可能尚未在所有POSIX平台上提供.但是,它已经在主要平台上使用了很长时间:
所以在实践中,你可以安全地使用mkdtemp.如果需要回退,请在源代码中包含OpenBSD实现.