<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Temporary Files (GNU Octave (version 5.1.0))</title> <meta name="description" content="Temporary Files (GNU Octave (version 5.1.0))"> <meta name="keywords" content="Temporary Files (GNU Octave (version 5.1.0))"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="makeinfo"> <link href="index.html#Top" rel="start" title="Top"> <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index"> <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="C_002dStyle-I_002fO-Functions.html#C_002dStyle-I_002fO-Functions" rel="up" title="C-Style I/O Functions"> <link href="EOF-and-Errors.html#EOF-and-Errors" rel="next" title="EOF and Errors"> <link href="Binary-I_002fO.html#Binary-I_002fO" rel="prev" title="Binary I/O"> <style type="text/css"> <!-- a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} ul.no-bullet {list-style: none} --> </style> <link rel="stylesheet" type="text/css" href="octave.css"> </head> <body lang="en"> <a name="Temporary-Files"></a> <div class="header"> <p> Next: <a href="EOF-and-Errors.html#EOF-and-Errors" accesskey="n" rel="next">EOF and Errors</a>, Previous: <a href="Binary-I_002fO.html#Binary-I_002fO" accesskey="p" rel="prev">Binary I/O</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html#C_002dStyle-I_002fO-Functions" accesskey="u" rel="up">C-Style I/O Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> </div> <hr> <a name="Temporary-Files-1"></a> <h4 class="subsection">14.2.17 Temporary Files</h4> <p>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. </p> <a name="XREFmkstemp"></a><dl> <dt><a name="index-mkstemp"></a><em>[<var>fid</var>, <var>name</var>, <var>msg</var>] =</em> <strong>mkstemp</strong> <em>("<var>template</var>")</em></dt> <dt><a name="index-mkstemp-1"></a><em>[<var>fid</var>, <var>name</var>, <var>msg</var>] =</em> <strong>mkstemp</strong> <em>("<var>template</var>", <var>delete</var>)</em></dt> <dd><p>Return the file descriptor <var>fid</var> corresponding to a new temporary file with a unique name created from <var>template</var>. </p> <p>The last six characters of <var>template</var> must be <code>"XXXXXX"</code> 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 <code><span class="nolinebreak">O_EXCL</span></code><!-- /@w --> flag. </p> <p>If the optional argument <var>delete</var> is supplied and is true, the file will be deleted automatically when Octave exits. </p> <p>If successful, <var>fid</var> is a valid file ID, <var>name</var> is the name of the file, and <var>msg</var> is an empty string. Otherwise, <var>fid</var> is -1, <var>name</var> is empty, and <var>msg</var> contains a system-dependent error message. </p> <p><strong>See also:</strong> <a href="#XREFtempname">tempname</a>, <a href="#XREFtempdir">tempdir</a>, <a href="#XREFP_005ftmpdir">P_tmpdir</a>, <a href="#XREFtmpfile">tmpfile</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>. </p></dd></dl> <a name="XREFtmpfile"></a><dl> <dt><a name="index-tmpfile"></a><em>[<var>fid</var>, <var>msg</var>] =</em> <strong>tmpfile</strong> <em>()</em></dt> <dd><p>Return the file ID corresponding to a new temporary file with a unique name. </p> <p>The file is opened in binary read/write (<code>"w+b"</code>) mode and will be deleted automatically when it is closed or when Octave exits. </p> <p>If successful, <var>fid</var> is a valid file ID and <var>msg</var> is an empty string. Otherwise, <var>fid</var> is -1 and <var>msg</var> contains a system-dependent error message. </p> <p><strong>See also:</strong> <a href="#XREFtempname">tempname</a>, <a href="#XREFmkstemp">mkstemp</a>, <a href="#XREFtempdir">tempdir</a>, <a href="#XREFP_005ftmpdir">P_tmpdir</a>. </p></dd></dl> <a name="XREFtempname"></a><dl> <dt><a name="index-tempname"></a><em><var>fname</var> =</em> <strong>tempname</strong> <em>()</em></dt> <dt><a name="index-tempname-1"></a><em><var>fname</var> =</em> <strong>tempname</strong> <em>(<var>dir</var>)</em></dt> <dt><a name="index-tempname-2"></a><em><var>fname</var> =</em> <strong>tempname</strong> <em>(<var>dir</var>, <var>prefix</var>)</em></dt> <dd><p>Return a unique temporary filename as a string. </p> <p>If <var>prefix</var> is omitted, a value of <code>"oct-"</code> is used. </p> <p>If <var>dir</var> is also omitted, the default directory for temporary files (<code>P_tmpdir</code>) is used. If <var>dir</var> is provided, it must exist, otherwise the default directory for temporary files is used. </p> <p>Programming Note: Because the named file is not opened by <code>tempname</code>, 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 <code>tmpfile</code>. </p> <p><strong>See also:</strong> <a href="#XREFmkstemp">mkstemp</a>, <a href="#XREFtempdir">tempdir</a>, <a href="#XREFP_005ftmpdir">P_tmpdir</a>, <a href="#XREFtmpfile">tmpfile</a>. </p></dd></dl> <a name="XREFtempdir"></a><dl> <dt><a name="index-tempdir"></a><em><var>dir</var> =</em> <strong>tempdir</strong> <em>()</em></dt> <dd><p>Return the name of the host system’s directory for temporary files. </p> <p>The directory name is taken first from the environment variable <code>TMPDIR</code>. If that does not exist the system default returned by <code>P_tmpdir</code> is used. </p> <p><strong>See also:</strong> <a href="#XREFP_005ftmpdir">P_tmpdir</a>, <a href="#XREFtempname">tempname</a>, <a href="#XREFmkstemp">mkstemp</a>, <a href="#XREFtmpfile">tmpfile</a>. </p></dd></dl> <a name="XREFP_005ftmpdir"></a><dl> <dt><a name="index-P_005ftmpdir"></a><em></em> <strong>P_tmpdir</strong> <em>()</em></dt> <dd><p>Return the name of the host system’s <strong>default</strong> directory for temporary files. </p> <p>Programming Note: The value returned by <code>P_tmpdir</code> is always the default location. This value may not agree with that returned from <code>tempdir</code> if the user has overridden the default with the <code>TMPDIR</code> environment variable. </p> <p><strong>See also:</strong> <a href="#XREFtempdir">tempdir</a>, <a href="#XREFtempname">tempname</a>, <a href="#XREFmkstemp">mkstemp</a>, <a href="#XREFtmpfile">tmpfile</a>. </p></dd></dl> <hr> <div class="header"> <p> Next: <a href="EOF-and-Errors.html#EOF-and-Errors" accesskey="n" rel="next">EOF and Errors</a>, Previous: <a href="Binary-I_002fO.html#Binary-I_002fO" accesskey="p" rel="prev">Binary I/O</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html#C_002dStyle-I_002fO-Functions" accesskey="u" rel="up">C-Style I/O Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> </div> </body> </html>