1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EOF and Errors (GNU Octave (version 6.2.0))</title>
<meta name="description" content="EOF and Errors (GNU Octave (version 6.2.0))">
<meta name="keywords" content="EOF and Errors (GNU Octave (version 6.2.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" 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" rel="up" title="C-Style I/O Functions">
<link href="File-Positioning.html" rel="next" title="File Positioning">
<link href="Temporary-Files.html" rel="prev" title="Temporary Files">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {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}
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">
<span id="EOF-and-Errors"></span><div class="header">
<p>
Next: <a href="File-Positioning.html" accesskey="n" rel="next">File Positioning</a>, Previous: <a href="Temporary-Files.html" accesskey="p" rel="prev">Temporary Files</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html" 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" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="End-of-File-and-Errors"></span><h4 class="subsection">14.2.18 End of File and Errors</h4>
<p>Once a file has been opened its status can be acquired. As an example
the <code>feof</code> functions determines if the end of the file has been
reached. This can be very useful when reading small parts of a file
at a time. The following example shows how to read one line at a time
from a file until the end has been reached.
</p>
<div class="example">
<pre class="example">filename = "myfile.txt";
fid = fopen (filename, "r");
while (! feof (fid) )
text_line = fgetl (fid);
endwhile
fclose (fid);
</pre></div>
<p>Note that in some situations it is more efficient to read the entire
contents of a file and then process it, than it is to read it line by
line. This has the potential advantage of removing the loop in the
above code.
</p>
<span id="XREFfeof"></span><dl>
<dt id="index-feof">: <em><var>status</var> =</em> <strong>feof</strong> <em>(<var>fid</var>)</em></dt>
<dd><p>Return 1 if an end-of-file condition has been encountered for the file
specified by file descriptor <var>fid</var> and 0 otherwise.
</p>
<p>Note that <code>feof</code> will only return 1 if the end of the file has already
been encountered, not if the next read operation will result in an
end-of-file condition.
</p>
<p><strong>See also:</strong> <a href="Binary-I_002fO.html#XREFfread">fread</a>, <a href="File-Positioning.html#XREFfrewind">frewind</a>, <a href="File-Positioning.html#XREFfseek">fseek</a>, <a href="#XREFfclear">fclear</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<span id="XREFferror"></span><dl>
<dt id="index-ferror">: <em><var>msg</var> =</em> <strong>ferror</strong> <em>(<var>fid</var>)</em></dt>
<dt id="index-ferror-1">: <em>[<var>msg</var>, <var>err</var>] =</em> <strong>ferror</strong> <em>(<var>fid</var>)</em></dt>
<dt id="index-ferror-2">: <em>[…] =</em> <strong>ferror</strong> <em>(<var>fid</var>, "clear")</em></dt>
<dd><p>Query the error status of the stream specified by file descriptor <var>fid</var>.
</p>
<p>If an error condition exists then return a string <var>msg</var> describing the
error. Otherwise, return an empty string <code>""</code>.
</p>
<p>The second input <code>"clear"</code> is optional. If supplied, the error
state on the stream will be cleared.
</p>
<p>The optional second output is a numeric indication of the error status.
<var>err</var> is 1 if an error condition has been encountered and 0 otherwise.
</p>
<p>Note that <code>ferror</code> indicates if an error has already occurred, not
whether the next operation will result in an error condition.
</p>
<p><strong>See also:</strong> <a href="#XREFfclear">fclear</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<span id="XREFfclear"></span><dl>
<dt id="index-fclear">: <em></em> <strong>fclear</strong> <em>(<var>fid</var>)</em></dt>
<dd><p>Clear the stream state for the file specified by the file descriptor
<var>fid</var>.
</p>
<p><strong>See also:</strong> <a href="#XREFferror">ferror</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<span id="XREFfreport"></span><dl>
<dt id="index-freport">: <em></em> <strong>freport</strong> <em>()</em></dt>
<dd><p>Print a list of which files have been opened, and whether they are open
for reading, writing, or both.
</p>
<p>For example:
</p>
<div class="example">
<pre class="example">freport ()
-| number mode arch name
-| ------ ---- ---- ----
-| 0 r ieee-le stdin
-| 1 w ieee-le stdout
-| 2 w ieee-le stderr
-| 3 r ieee-le myfile
</pre></div>
<p><strong>See also:</strong> <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>, <a href="Opening-and-Closing-Files.html#XREFfclose">fclose</a>, <a href="Opening-and-Closing-Files.html#XREFis_005fvalid_005ffile_005fid">is_valid_file_id</a>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="File-Positioning.html" accesskey="n" rel="next">File Positioning</a>, Previous: <a href="Temporary-Files.html" accesskey="p" rel="prev">Temporary Files</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html" 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" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|