14.2.17 Temporary Files

Sometimes one needs to write data to a file that is only temporary. This is most commonly used when an external program launched from within Octave needs to access data. When Octave exits all temporary files will be deleted, so this step need not be executed manually.

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

Return the file descriptor fid corresponding to a new temporary file with a unique name created from template.

The last six characters of template must be "XXXXXX" and these are replaced with a string that makes the filename unique. The file is then created with mode read/write and permissions that are system dependent (on GNU/Linux systems, the permissions will be 0600 for versions of glibc 2.0.7 and later). The file is opened in binary mode and with the O_EXCL flag.

If the optional argument delete is supplied and is true, the file will be deleted automatically when Octave exits.

If successful, fid is a valid file ID, name is the name of the file, and msg is an empty string. Otherwise, fid is -1, name is empty, and msg contains a system-dependent error message.

See also: tempname, tempdir, P_tmpdir, tmpfile, fopen.

: [fid, msg] = tmpfile ()

Return the file ID corresponding to a new temporary file with a unique name.

The file is opened in binary read/write ("w+b") mode and will be deleted automatically when it is closed or when Octave exits.

If successful, fid is a valid file ID and msg is an empty string. Otherwise, fid is -1 and msg contains a system-dependent error message.

See also: tempname, mkstemp, tempdir, P_tmpdir.

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

Return a unique temporary filename as a string.

If prefix is omitted, a value of "oct-" is used.

If dir is also omitted, the default directory for temporary files (P_tmpdir) is used. If dir is provided, it must exist, otherwise the default directory for temporary files is used.

Programming Note: Because the named file is not opened by tempname, it is possible, though relatively unlikely, that it will not be available by the time your program attempts to open it. If this is a concern, see tmpfile.

See also: mkstemp, tempdir, P_tmpdir, tmpfile.

: dir = tempdir ()

Return the name of the host system’s directory for temporary files.

The directory name is taken first from the environment variable TMPDIR. If that does not exist the system default returned by P_tmpdir is used.

See also: P_tmpdir, tempname, mkstemp, tmpfile.

: P_tmpdir ()

Return the name of the host system’s default directory for temporary files.

Programming Note: The value returned by P_tmpdir is always the default location. This value may not agree with that returned from tempdir if the user has overridden the default with the TMPDIR environment variable.

See also: tempdir, tempname, mkstemp, tmpfile.

© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/Temporary-Files.html