| 12
 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
 146
 147
 148
 149
 150
 151
 152
 
 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Octave: File Positioning</title>
<meta name="description" content="GNU Octave: File Positioning">
<meta name="keywords" content="GNU Octave: File Positioning">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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="Plotting.html#Plotting" rel="next" title="Plotting">
<link href="EOF-and-Errors.html#EOF-and-Errors" rel="prev" title="EOF and Errors">
<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>
</head>
<body lang="en">
<a name="File-Positioning"></a>
<div class="header">
<p>
Previous: <a href="EOF-and-Errors.html#EOF-and-Errors" accesskey="p" rel="prev">EOF and Errors</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="File-Positioning-1"></a>
<h4 class="subsection">14.2.19 File Positioning</h4>
<p>Three functions are available for setting and determining the position of
the file pointer for a given file.
</p>
<a name="XREFftell"></a><dl>
<dt><a name="index-ftell"></a>Built-in Function: <em><var>pos</var> =</em> <strong>ftell</strong> <em>(<var>fid</var>)</em></dt>
<dd><p>Return the position of the file pointer as the number of characters from the
beginning of the file specified by file descriptor <var>fid</var>.
</p>
<p><strong>See also:</strong> <a href="#XREFfseek">fseek</a>, <a href="#XREFfrewind">frewind</a>, <a href="EOF-and-Errors.html#XREFfeof">feof</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<a name="XREFfseek"></a><dl>
<dt><a name="index-fseek"></a>Built-in Function: <em></em> <strong>fseek</strong> <em>(<var>fid</var>, <var>offset</var>)</em></dt>
<dt><a name="index-fseek-1"></a>Built-in Function: <em></em> <strong>fseek</strong> <em>(<var>fid</var>, <var>offset</var>, <var>origin</var>)</em></dt>
<dt><a name="index-fseek-2"></a>Built-in Function: <em><var>status</var> =</em> <strong>fseek</strong> <em>(…)</em></dt>
<dd><p>Set the file pointer to the location <var>offset</var> within the file <var>fid</var>.
</p>
<p>The pointer is positioned <var>offset</var> characters from the <var>origin</var>,
which may be one of the predefined variables <code><span class="nolinebreak">SEEK_CUR</span></code><!-- /@w --> (current
position), <code><span class="nolinebreak">SEEK_SET</span></code><!-- /@w --> (beginning), or <code><span class="nolinebreak">SEEK_END</span></code><!-- /@w --> (end of
file) or strings <code>"cof"</code>, <code>"bof"</code> or <code>"eof"</code>.  If
<var>origin</var> is omitted, <code><span class="nolinebreak">SEEK_SET</span></code><!-- /@w --> is assumed.  <var>offset</var> may
be positive, negative, or zero but not all combinations of <var>origin</var> and
<var>offset</var> can be realized.
</p>
<p><code>fseek</code> returns 0 on success and -1 on error.
</p>
<p><strong>See also:</strong> <a href="Line_002dOriented-Input.html#XREFfskipl">fskipl</a>, <a href="#XREFfrewind">frewind</a>, <a href="#XREFftell">ftell</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<a name="XREFSEEK_005fSET"></a><dl>
<dt><a name="index-SEEK_005fSET"></a>Built-in Function: <em></em> <strong>SEEK_SET</strong> <em>()</em></dt>
<dt><a name="index-SEEK_005fCUR"></a>Built-in Function: <em></em> <strong>SEEK_CUR</strong> <em>()</em></dt>
<dt><a name="index-SEEK_005fEND"></a>Built-in Function: <em></em> <strong>SEEK_END</strong> <em>()</em></dt>
<dd><p>Return the numerical value to pass to <code>fseek</code> to perform one of the
following actions:
</p>
<dl compact="compact">
<dt><code>SEEK_SET</code></dt>
<dd><p>Position file relative to the beginning.
</p>
</dd>
<dt><code>SEEK_CUR</code></dt>
<dd><p>Position file relative to the current position.
</p>
</dd>
<dt><code>SEEK_END</code></dt>
<dd><p>Position file relative to the end.
</p></dd>
</dl>
<p><strong>See also:</strong> <a href="#XREFfseek">fseek</a>.
</p></dd></dl>
<a name="XREFfrewind"></a><dl>
<dt><a name="index-frewind"></a>Built-in Function: <em></em> <strong>frewind</strong> <em>(<var>fid</var>)</em></dt>
<dt><a name="index-frewind-1"></a>Built-in Function: <em><var>status</var> =</em> <strong>frewind</strong> <em>(<var>fid</var>)</em></dt>
<dd><p>Move the file pointer to the beginning of the file specified by file
descriptor <var>fid</var>.
</p>
<p><code>frewind</code> returns 0 for success, and -1 if an error is encountered.  It
is equivalent to <code>fseek (<var>fid</var>, 0, SEEK_SET)</code>.
</p>
<p><strong>See also:</strong> <a href="#XREFfseek">fseek</a>, <a href="#XREFftell">ftell</a>, <a href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<p>The following example stores the current file position in the variable
<code>marker</code>, moves the pointer to the beginning of the file, reads
four characters, and then returns to the original position.
</p>
<div class="example">
<pre class="example">marker = ftell (myfile);
frewind (myfile);
fourch = fgets (myfile, 4);
fseek (myfile, marker, SEEK_SET);
</pre></div>
<hr>
<div class="header">
<p>
Previous: <a href="EOF-and-Errors.html#EOF-and-Errors" accesskey="p" rel="prev">EOF and Errors</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>
 |