1 <refentry id="gnome-vfs-20-gnome-vfs-file-rw-ops">
3 <refentrytitle>Reading and Writing</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>GNOME-VFS-2.0 Library</refmiscinfo>
9 <refname>Reading and Writing</refname><refpurpose></refpurpose>
12 <refsynopsisdiv><title>Synopsis</title>
18 enum <link linkend="GnomeVFSSeekPosition">GnomeVFSSeekPosition</link>;
19 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-read">gnome_vfs_read</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
20 <link linkend="gpointer">gpointer</link> buffer,
21 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
22 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_read);
23 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-write">gnome_vfs_write</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
24 <link linkend="gconstpointer">gconstpointer</link> buffer,
25 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
26 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_written);
27 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-seek">gnome_vfs_seek</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
28 <link linkend="GnomeVFSSeekPosition">GnomeVFSSeekPosition</link> whence,
29 <link linkend="GnomeVFSFileOffset">GnomeVFSFileOffset</link> offset);
30 <link linkend="GnomeVFSResult">GnomeVFSResult</link> <link linkend="gnome-vfs-tell">gnome_vfs_tell</link> (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
31 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *offset_return);
44 <title>Description</title>
46 Reading and writing operations are explained, also <parameter>gnome_vfs_seek</parameter>, which
47 is used to move the file pointer inside the file.
52 <title>Details</title>
54 <title><anchor id="GnomeVFSSeekPosition"/>enum GnomeVFSSeekPosition</title>
55 <indexterm><primary>GnomeVFSSeekPosition</primary></indexterm><programlisting>typedef enum {
57 GNOME_VFS_SEEK_CURRENT,
59 } GnomeVFSSeekPosition;
62 This is used to specify the start position for seek operations.</para>
65 </para><variablelist role="enum">
67 <term><literal>GNOME_VFS_SEEK_START</literal></term>
68 <listitem><simpara> Start of the file.
72 <term><literal>GNOME_VFS_SEEK_CURRENT</literal></term>
73 <listitem><simpara> Current position.
77 <term><literal>GNOME_VFS_SEEK_END</literal></term>
78 <listitem><simpara> End of the file.
81 </variablelist></refsect2>
83 <title><anchor id="gnome-vfs-read"/>gnome_vfs_read ()</title>
84 <indexterm><primary>gnome_vfs_read</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_read (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
85 <link linkend="gpointer">gpointer</link> buffer,
86 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
87 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_read);</programlisting>
89 Read <parameter>bytes</parameter> from <parameter>handle</parameter>. As with Unix system calls, the number of
90 bytes read can effectively be less than <parameter>bytes</parameter> on return and will be
91 stored in <parameter>bytes_read</parameter>.</para>
94 </para><variablelist role="params">
95 <varlistentry><term><parameter>handle</parameter> :</term>
96 <listitem><simpara> Handle of the file to read data from
97 </simpara></listitem></varlistentry>
98 <varlistentry><term><parameter>buffer</parameter> :</term>
99 <listitem><simpara> Pointer to a buffer that must be at least <parameter>bytes</parameter> bytes large
100 </simpara></listitem></varlistentry>
101 <varlistentry><term><parameter>bytes</parameter> :</term>
102 <listitem><simpara> Number of bytes to read
103 </simpara></listitem></varlistentry>
104 <varlistentry><term><parameter>bytes_read</parameter> :</term>
105 <listitem><simpara> Pointer to a variable that will hold the number of bytes
106 effectively read on return.
107 </simpara></listitem></varlistentry>
108 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
109 </simpara></listitem></varlistentry>
110 </variablelist></refsect2>
112 <title><anchor id="gnome-vfs-write"/>gnome_vfs_write ()</title>
113 <indexterm><primary>gnome_vfs_write</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_write (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
114 <link linkend="gconstpointer">gconstpointer</link> buffer,
115 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> bytes,
116 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *bytes_written);</programlisting>
118 Write <parameter>bytes</parameter> into the file opened through <parameter>handle</parameter>. As with Unix system
119 calls, the number of bytes written can effectively be less than <parameter>bytes</parameter> on
120 return and will be stored in <parameter>bytes_written</parameter>.</para>
123 </para><variablelist role="params">
124 <varlistentry><term><parameter>handle</parameter> :</term>
125 <listitem><simpara> Handle of the file to write data to
126 </simpara></listitem></varlistentry>
127 <varlistentry><term><parameter>buffer</parameter> :</term>
128 <listitem><simpara> Pointer to the buffer containing the data to be written
129 </simpara></listitem></varlistentry>
130 <varlistentry><term><parameter>bytes</parameter> :</term>
131 <listitem><simpara> Number of bytes to write
132 </simpara></listitem></varlistentry>
133 <varlistentry><term><parameter>bytes_written</parameter> :</term>
134 <listitem><simpara> Pointer to a variable that will hold the number of bytes
135 effectively written on return.
136 </simpara></listitem></varlistentry>
137 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
138 </simpara></listitem></varlistentry>
139 </variablelist></refsect2>
141 <title><anchor id="gnome-vfs-seek"/>gnome_vfs_seek ()</title>
142 <indexterm><primary>gnome_vfs_seek</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_seek (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
143 <link linkend="GnomeVFSSeekPosition">GnomeVFSSeekPosition</link> whence,
144 <link linkend="GnomeVFSFileOffset">GnomeVFSFileOffset</link> offset);</programlisting>
146 Set the current position for reading/writing through <parameter>handle</parameter>.</para>
149 </para><variablelist role="params">
150 <varlistentry><term><parameter>handle</parameter> :</term>
151 <listitem><simpara> Handle for which the current position must be changed
152 </simpara></listitem></varlistentry>
153 <varlistentry><term><parameter>whence</parameter> :</term>
154 <listitem><simpara> Integer value representing the starting position
155 </simpara></listitem></varlistentry>
156 <varlistentry><term><parameter>offset</parameter> :</term>
157 <listitem><simpara> Number of bytes to skip from the position specified by <parameter>whence</parameter>
158 (a positive value means to move forward; a negative one to move backwards)
159 </simpara></listitem></varlistentry>
160 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
161 </simpara></listitem></varlistentry>
162 </variablelist></refsect2>
164 <title><anchor id="gnome-vfs-tell"/>gnome_vfs_tell ()</title>
165 <indexterm><primary>gnome_vfs_tell</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_tell (<link linkend="GnomeVFSHandle">GnomeVFSHandle</link> *handle,
166 <link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> *offset_return);</programlisting>
168 Return the current position on <parameter>handle</parameter>. This is the point in the file
169 pointed to by handle that reads and writes will occur on.</para>
172 </para><variablelist role="params">
173 <varlistentry><term><parameter>handle</parameter> :</term>
174 <listitem><simpara> Handle for which the current position must be retrieved
175 </simpara></listitem></varlistentry>
176 <varlistentry><term><parameter>offset_return</parameter> :</term>
177 <listitem><simpara> Pointer to a variable that will contain the current position
179 </simpara></listitem></varlistentry>
180 <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An integer representing the result of the operation
181 </simpara></listitem></varlistentry>
182 </variablelist></refsect2>