blob: c6b8bb8a6394b640e963ac7536003396b3733156 [file] [log] [blame]
<html lang="en">
<head>
<title>I/O Concepts - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="I_002fO-Overview.html#I_002fO-Overview" title="I/O Overview">
<link rel="next" href="File-Names.html#File-Names" title="File Names">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.
This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A
copy of the license is included in the section entitled "GNU Free
Documentation License".
(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual. Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="I%2fO-Concepts"></a>
<a name="I_002fO-Concepts"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="File-Names.html#File-Names">File Names</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="I_002fO-Overview.html#I_002fO-Overview">I/O Overview</a>
<hr>
</div>
<h3 class="section">11.1 Input/Output Concepts</h3>
<p>Before you can read or write the contents of a file, you must establish
a connection or communications channel to the file. This process is
called <dfn>opening</dfn> the file. You can open a file for reading, writing,
or both.
<a name="index-opening-a-file-898"></a>
The connection to an open file is represented either as a stream or as a
file descriptor. You pass this as an argument to the functions that do
the actual read or write operations, to tell them which file to operate
on. Certain functions expect streams, and others are designed to
operate on file descriptors.
<p>When you have finished reading to or writing from the file, you can
terminate the connection by <dfn>closing</dfn> the file. Once you have
closed a stream or file descriptor, you cannot do any more input or
output operations on it.
<ul class="menu">
<li><a accesskey="1" href="Streams-and-File-Descriptors.html#Streams-and-File-Descriptors">Streams and File Descriptors</a>: The GNU Library provides two ways
to access the contents of files.
<li><a accesskey="2" href="File-Position.html#File-Position">File Position</a>: The number of bytes from the
beginning of the file.
</ul>
</body></html>