14.2.17 临时文件

有时需要将数据写入一个临时文件。最常见的使用场景是从 Octave 内部启动的外部程序需要访问数据时。当 Octave 退出时,所有临时文件都将被自动删除,因此无需手动执行此步骤。

 
[fid, name, msg] = mkstemp ("template")
[fid, name, msg] = mkstemp ("template", delete)

返回文件描述符 fid,该描述符对应一个从 template 创建并具有唯一名称的新临时文件。

template 的最后六个字符必须是 "XXXXXX",这些字符将被替换为一个使文件名唯一的字符串。随后以读/写模式创建文件,其权限取决于系统(在 GNU/Linux 系统上,对于 glibc 2.0.7 及更高版本,权限为 0600)。文件以二进制模式打开,并使用 O_EXCL 标志。

如果提供了可选参数 delete 且其值为 true,则在 Octave 退出时该文件将被自动删除。

如果成功,fid 是一个有效的文件 ID,name 是文件名,msg 是一个空字符串。否则,fid 为 -1,name 为空,msg 包含一个系统相关的错误消息。

另请参阅: tempnametempdirP_tmpdirtmpfilefopen

 
[fid, msg] = tmpfile ()

返回一个与具有唯一名称的新临时文件相对应的文件 ID。

该文件以二进制读/写("w+b")模式打开,并将在关闭时或 Octave 退出时自动删除。

如果成功,fid 是一个有效的文件 ID,msg 是一个空字符串。否则,fid 为 -1,msg 包含一个系统相关的错误消息。

另请参阅: tempnamemkstemptempdirP_tmpdir

 
fname = tempname ()
fname = tempname (dir)
fname = tempname (dir, prefix)

以字符串形式返回一个唯一的临时文件名。

如果省略 prefix,则使用值 "oct-"

如果同时也省略了 dir,则使用临时文件的默认目录(P_tmpdir)。如果提供了 dir,则该目录必须存在,否则将使用临时文件的默认目录。

编程说明:由于 tempname 不会打开该命名文件,因此在程序尝试打开它时该文件有可能(尽管可能性相对较小)不可用。如果这是一个问题,请参阅 tmpfile

另请参阅: mkstemptempdirP_tmpdirtmpfile

 
dir = tempdir ()

返回主机系统中临时文件目录的名称。

目录名称首先取自环境变量 TMPDIR。如果该变量不存在,则检查环境变量 TMP(在 Windows 平台上还以更高优先级检查环境变量 TEMP)。如果这些变量均未设置,则使用 P_tmpdir 返回的系统默认值。

另请参阅: P_tmpdirtempnamemkstemptmpfile

 
sys_tmpdir = P_tmpdir ()

返回主机系统中临时文件的默认目录名称。

编程说明:P_tmpdir 返回的值始终是默认位置。如果用户通过 TMPDIR 环境变量覆盖了默认值,则该值可能与 tempdir 返回的值不一致。

另请参阅: tempdirtempnamemkstemptmpfile


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2