繁体   English   中英

mktemp(1)的可移植性如何?

[英]How portable is mktemp(1)?

正如标题所示 - 我可以合理地确定mktemp将存在于我可能遇到的任何unix-y操作系统上吗?

POSIX似乎没有指定mktemp(1)

看起来大多数现代系统都有它,但是可用的功能和选项的语义因实现而异(因此特定的调用可能不可移植):

因此,如果您需要便携式解决方案,您可能需要坚持在所有感兴趣的平台上使用相同功能的选项。

mktemp 函数 (AKA mktemp(3) )最初出现在Unix V7中,所以它可能无处不在。 但是,我相信mktemp 命令 (也就是mktemp(1) )首先出现在OpenBSD 2.1上,所以如果你必须处理真正的antediluvian Unix系统,你可能不得不担心 - 除非你能分发非常便携的mktemp.org版本(以修复某些客户的antediluvian系统可能缺少此实用程序)。 你有多大可能遇到antediluvian系统我们当然不可能猜测 - 例如,在HP-UXmktemp(1)已经存在了至少8年(甚至大多数企业可能已经更新了他们的Unix操作系统那个时间框架),在Xenix中我相信它出现在3.0(1992年)等等。

仅供参考,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);

在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
当前状态:已安装

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM