#### 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 environment variable `TMP` (and on Windows platforms also with higher priority the environment variable `TEMP`) is checked. If none of those are set, the system default returned by `P_tmpdir` is used.

  See also: P_tmpdir, tempname, mkstemp, tmpfile.

`sys_tmpdir =` 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.