blob: 2c7d9b57da3037ac3f3341cba7409ca7becaa1cb [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GFileOutputStream: GIO Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GIO Reference Manual">
<link rel="up" href="streaming.html" title="Streaming I/O">
<link rel="prev" href="GFileInputStream.html" title="GFileInputStream">
<link rel="next" href="GFileIOStream.html" title="GFileIOStream">
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#GFileOutputStream.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#GFileOutputStream.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
<a href="#GFileOutputStream.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="streaming.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GFileInputStream.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GFileIOStream.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GFileOutputStream"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GFileOutputStream.top_of_page"></a>GFileOutputStream</span></h2>
<p>GFileOutputStream — File output streaming operations</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GFileOutputStream.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GFileInfo.html" title="GFileInfo"><span class="returnvalue">GFileInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info" title="g_file_output_stream_query_info ()">g_file_output_stream_query_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info-async" title="g_file_output_stream_query_info_async ()">g_file_output_stream_query_info_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GFileInfo.html" title="GFileInfo"><span class="returnvalue">GFileInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info-finish" title="g_file_output_stream_query_info_finish ()">g_file_output_stream_query_info_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="GFileOutputStream.html#g-file-output-stream-get-etag" title="g_file_output_stream_get_etag ()">g_file_output_stream_get_etag</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GFileOutputStream.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GFileOutputStream.html#GFileOutputStream-struct" title="GFileOutputStream">GFileOutputStream</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GFileOutputStream.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="../gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a class="link" href="GOutputStream.html" title="GOutputStream">GOutputStream</a>
<span class="lineart">╰──</span> GFileOutputStream
</pre>
</div>
<div class="refsect1">
<a name="GFileOutputStream.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GFileOutputStream implements
<a class="link" href="GSeekable.html" title="GSeekable">GSeekable</a>.</p>
</div>
<div class="refsect1">
<a name="GFileOutputStream.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gio/gio.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GFileOutputStream.description"></a><h2>Description</h2>
<p>GFileOutputStream provides output streams that write their
content to a file.</p>
<p>GFileOutputStream implements <a class="link" href="GSeekable.html" title="GSeekable"><span class="type">GSeekable</span></a>, which allows the output
stream to jump to arbitrary positions in the file and to truncate
the file, provided the filesystem of the file supports these
operations.</p>
<p>To find the position of a file output stream, use <a class="link" href="GSeekable.html#g-seekable-tell" title="g_seekable_tell ()"><code class="function">g_seekable_tell()</code></a>.
To find out if a file output stream supports seeking, use
<a class="link" href="GSeekable.html#g-seekable-can-seek" title="g_seekable_can_seek ()"><code class="function">g_seekable_can_seek()</code></a>.To position a file output stream, use
<a class="link" href="GSeekable.html#g-seekable-seek" title="g_seekable_seek ()"><code class="function">g_seekable_seek()</code></a>. To find out if a file output stream supports
truncating, use <a class="link" href="GSeekable.html#g-seekable-can-truncate" title="g_seekable_can_truncate ()"><code class="function">g_seekable_can_truncate()</code></a>. To truncate a file output
stream, use <a class="link" href="GSeekable.html#g-seekable-truncate" title="g_seekable_truncate ()"><code class="function">g_seekable_truncate()</code></a>.</p>
</div>
<div class="refsect1">
<a name="GFileOutputStream.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="g-file-output-stream-query-info"></a><h3>g_file_output_stream_query_info ()</h3>
<pre class="programlisting"><a class="link" href="GFileInfo.html" title="GFileInfo"><span class="returnvalue">GFileInfo</span></a> *
g_file_output_stream_query_info (<em class="parameter"><code><a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a> *stream</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *attributes</code></em>,
<em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="../glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Queries a file output stream for the given <em class="parameter"><code>attributes</code></em>
.
This function blocks while querying the stream. For the asynchronous
version of this function, see <a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info-async" title="g_file_output_stream_query_info_async ()"><code class="function">g_file_output_stream_query_info_async()</code></a>.
While the stream is blocked, the stream will set the pending flag
internally, and any other operations on the stream will fail with
<a class="link" href="gio-GIOError.html#G-IO-ERROR-PENDING:CAPS"><code class="literal">G_IO_ERROR_PENDING</code></a>.</p>
<p>Can fail if the stream was already closed (with <em class="parameter"><code>error</code></em>
being set to
<a class="link" href="gio-GIOError.html#G-IO-ERROR-CLOSED:CAPS"><code class="literal">G_IO_ERROR_CLOSED</code></a>), the stream has pending operations (with <em class="parameter"><code>error</code></em>
being
set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-PENDING:CAPS"><code class="literal">G_IO_ERROR_PENDING</code></a>), or if querying info is not supported for
the stream's interface (with <em class="parameter"><code>error</code></em>
being set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-NOT-SUPPORTED:CAPS"><code class="literal">G_IO_ERROR_NOT_SUPPORTED</code></a>). In
all cases of failure, <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned.</p>
<p>If <em class="parameter"><code>cancellable</code></em>
is not <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, then the operation can be cancelled by
triggering the cancellable object from another thread. If the operation
was cancelled, the error <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a> will be set, and <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will
be returned.</p>
<div class="refsect3">
<a name="g-file-output-stream-query-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>a <a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>attributes</p></td>
<td class="parameter_description"><p>a file attribute query string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> object, <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore. </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-file-output-stream-query-info.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="GFileInfo.html" title="GFileInfo"><span class="type">GFileInfo</span></a> for the <em class="parameter"><code>stream</code></em>
, or <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-file-output-stream-query-info-async"></a><h3>g_file_output_stream_query_info_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_file_output_stream_query_info_async (<em class="parameter"><code><a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a> *stream</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *attributes</code></em>,
<em class="parameter"><code><span class="type">int</span> io_priority</code></em>,
<em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="../glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Asynchronously queries the <em class="parameter"><code>stream</code></em>
for a <a class="link" href="GFileInfo.html" title="GFileInfo"><span class="type">GFileInfo</span></a>. When completed,
<em class="parameter"><code>callback</code></em>
will be called with a <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> which can be used to
finish the operation with <a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info-finish" title="g_file_output_stream_query_info_finish ()"><code class="function">g_file_output_stream_query_info_finish()</code></a>.</p>
<p>For the synchronous version of this function, see
<a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info" title="g_file_output_stream_query_info ()"><code class="function">g_file_output_stream_query_info()</code></a>.</p>
<div class="refsect3">
<a name="g-file-output-stream-query-info-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>a <a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>attributes</p></td>
<td class="parameter_description"><p>a file attribute query string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>io_priority</p></td>
<td class="parameter_description"><p>the <a class="link" href="gio-GIOScheduler.html" title="GIOScheduler">I/O priority</a> of the request</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> object, <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore. </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>callback to call when the request is satisfied</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>the data to pass to callback function</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-file-output-stream-query-info-finish"></a><h3>g_file_output_stream_query_info_finish ()</h3>
<pre class="programlisting"><a class="link" href="GFileInfo.html" title="GFileInfo"><span class="returnvalue">GFileInfo</span></a> *
g_file_output_stream_query_info_finish
(<em class="parameter"><code><a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a> *stream</code></em>,
<em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
<em class="parameter"><code><a href="../glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finalizes the asynchronous query started
by <a class="link" href="GFileOutputStream.html#g-file-output-stream-query-info-async" title="g_file_output_stream_query_info_async ()"><code class="function">g_file_output_stream_query_info_async()</code></a>.</p>
<div class="refsect3">
<a name="g-file-output-stream-query-info-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>a <a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>a <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, <a href="../glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-file-output-stream-query-info-finish.returns"></a><h4>Returns</h4>
<p> A <a class="link" href="GFileInfo.html" title="GFileInfo"><span class="type">GFileInfo</span></a> for the finished query. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-file-output-stream-get-etag"></a><h3>g_file_output_stream_get_etag ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
g_file_output_stream_get_etag (<em class="parameter"><code><a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a> *stream</code></em>);</pre>
<p>Gets the entity tag for the file when it has been written.
This must be called after the stream has been written
and closed, as the etag can change while writing.</p>
<div class="refsect3">
<a name="g-file-output-stream-get-etag.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>a <a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-file-output-stream-get-etag.returns"></a><h4>Returns</h4>
<p> the entity tag for the stream.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GFileOutputStream.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GFileOutputStream-struct"></a><h3>GFileOutputStream</h3>
<pre class="programlisting">typedef struct _GFileOutputStream GFileOutputStream;</pre>
<p>A subclass of GOutputStream for opened files. This adds
a few file-specific operations and seeking and truncating.</p>
<p><a class="link" href="GFileOutputStream.html" title="GFileOutputStream"><span class="type">GFileOutputStream</span></a> implements GSeekable.</p>
</div>
</div>
<div class="refsect1">
<a name="GFileOutputStream.see-also"></a><h2>See Also</h2>
<p><a class="link" href="GOutputStream.html" title="GOutputStream"><span class="type">GOutputStream</span></a>, <a class="link" href="GDataOutputStream.html" title="GDataOutputStream"><span class="type">GDataOutputStream</span></a>, <a class="link" href="GSeekable.html" title="GSeekable"><span class="type">GSeekable</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
</body>
</html>