正如标题所示 - 我是否可以合理地确定mktemp
将存在于我可能会遇到的任何unix-y操作系统上?
答案 0 :(得分:19)
POSIX似乎没有指定 mktemp(1)。
看起来大多数现代系统都有它,但可用的功能和选项的语义因实现而异(因此特定的调用可能不可移植):
因此,如果您需要便携式解决方案,您可能需要坚持在所有感兴趣的平台上使用相同功能的选项。
答案 1 :(得分:5)
mktemp
函数(AKA mktemp(3)
)首次出现在Unix V7中,因此可能无处不在。但是,我相信在OpenBSD 2.1上首次出现了mktemp
命令(又名mktemp(1)
),所以如果你必须处理真正的antediluvian Unix系统,你可能 必须担心 - 除非您可以分发非常便携的mktemp.org版本(以确定某个客户的前端系统可能缺少此实用程序)。你有多大可能遇到antediluvian系统我们当然不可能猜测 - 例如,在HP-UX
中,mktemp(1)
已经存在至少8年(甚至大多数企业可能已经更新了他们的Unix操作系统在那段时间内),在Xenix中我相信它出现在3.0(1992年)等等。
答案 2 :(得分:3)
仅供参考,mktemp似乎不包含在Solaris 9(2002/2003发布)中 - 今天就碰到了这个:
$ uname -a SunOS dcmnapp02 5.9 Generic_122300-47 sun4u sparc SUNW,Sun-Fire-V440 $ mktemp bash: mktemp: command not found $ man mktemp bash-2.05$ man mktemp Reformatting page. Please Wait... done Standard C Library Functions mktemp(3C) NAME mktemp - make a unique file name SYNOPSIS #include char *mktemp(char *template);
答案 3 :(得分:1)
在Solaris 9上,它位于SMCmktemp包中,请参阅http://sunfreeware.com/indexsparc9.html:
uname -s
在SunOS
uname -r
5.9
/ usr / sbin / pkgchk -l -p / usr / local / bin / mktemp
路径名:/ usr / local / bin / mktemp
输入:普通文件
预期模式:0555
预期所有人:bin
预期组:bin
预期文件大小(字节):8884
预期的内容总和(1):6493
预计最后修改时间:2002年11月5日08:48:17 参考以下包:
SMCmktemp
当前状态:已安装