<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
fopen [C++ Reference]
</title>
<meta name="generator" content="DokuWiki Release 2009-12-25c "Lemming"" />
<meta name="robots" content="index,follow" />
<meta name="date" content="2009-08-19T14:04:57-0700" />
<meta name="keywords" content="c,io,fopen" />
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/lib/exe/opensearch.php" title="C++ Reference" />
<link rel="start" href="/wiki/" />
<link rel="contents" href="/wiki/c/io/fopen?do=index" title="Index" />
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/wiki/feed.php" />
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="/wiki/feed.php?mode=list&ns=c:io" />
<link rel="edit" title="Edit this page" href="/wiki/c/io/fopen?do=edit" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/_export/xhtml/c/io/fopen" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/_export/raw/c/io/fopen" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&t=custom1&tseed=1272971091" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=custom1&tseed=1272971091" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&t=custom1&tseed=1272971091" />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--
var NS='c:io';var JSINFO = {"id":"c:io:fopen","namespace":"c:io"};
//--><!]]></script>
<script type="text/javascript" charset="utf-8" src="/wiki/lib/exe/js.php?tseed=1272971091" ></script>
<link rel="shortcut icon" href="/wiki/lib/tpl/custom1/images/favicon.png" />
</head>
<body>
<div class="dokuwiki">
<div class="stylehead">
<div class="breadcrumbs">
<span class="bchead">You are here: </span><a href="../../start.html" title="start">C++ Reference</a> » <a href="../../c/start.html" title="c:start">The Standard C Library</a> » <a href="../../c/io/start.html" title="c:io:start">Standard C I/O</a> » <a href="../../c/io/fopen.html" title="c:io:fopen">fopen</a> </div>
</div>
<div class="page">
</script>
<script type="text/javascript">
_uacct = "UA-2828341-1";
urchinTracker();
</script>
<!-- wikipage start -->
<h2><a name="fopen" id="fopen">fopen</a></h2>
<div class="level2">
<p>
Syntax:
</p>
<pre class="c code c++" style="font-family:monospace;"> <span class="co2">#include <cstdio></span>
FILE <span class="sy0">*</span>fopen<span class="br0">(</span> <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy0">*</span>fname<span class="sy0">,</span> <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy0">*</span>mode <span class="br0">)</span><span class="sy0">;</span></pre>
<p>
The fopen() function opens a file indicated by fname and returns a stream associated with that file. mode is used to determine how the file will be treated (i.e. for input, output, etc).
</p>
<p>
If there is an error, fopen() returns NULL.
</p>
<table class="inline">
<tr class="row0">
<th class="col0">Mode</th><th class="col1">Meaning</th><th class="col2">Already Exists</th><th class="col3">Does Not Exist</th>
</tr>
<tr class="row1">
<td class="col0">“r”</td><td class="col1">Open a file for reading</td><td class="col2">read from start</td><td class="col3">error</td>
</tr>
<tr class="row2">
<td class="col0">“w”</td><td class="col1">Create a file for writing</td><td class="col2">destroy contents</td><td class="col3">create new</td>
</tr>
<tr class="row3">
<td class="col0">“a”</td><td class="col1">Append to a file</td><td class="col2">write to end</td><td class="col3">create new</td>
</tr>
<tr class="row4">
<td class="col0">“r+“</td><td class="col1">Open a file for read/write</td><td class="col2">read from start</td><td class="col3">error</td>
</tr>
<tr class="row5">
<td class="col0">“w+“</td><td class="col1">Create a file for read/write</td><td class="col2">destroy contents</td><td class="col3">create new</td>
</tr>
<tr class="row6">
<td class="col0">“a+“</td><td class="col1">Open a file for read/write</td><td class="col2">write to end</td><td class="col3">create new</td>
</tr>
</table>
<p>
You can also optionally specify the “b” flag to open a file in binary mode on Windows systems. This flag is ignored on POSIX systems (including Linux), so it's safe to always specify this flag when operating on binary files.
</p>
<p>
An example:
</p>
<pre class="c code c++" style="font-family:monospace;"> <span class="kw4">int</span> ch<span class="sy0">;</span>
FILE <span class="sy0">*</span>input <span class="sy0">=</span> fopen<span class="br0">(</span> <span class="st0">"stuff"</span><span class="sy0">,</span> <span class="st0">"r"</span> <span class="br0">)</span><span class="sy0">;</span>
ch <span class="sy0">=</span> getc<span class="br0">(</span> input <span class="br0">)</span><span class="sy0">;</span></pre>
<p>
Related Topics: <a href="../../c/io/fclose.html" class="wikilink1" title="c:io:fclose">fclose</a>, <a href="../../c/io/fflush.html" class="wikilink1" title="c:io:fflush">fflush</a>, <a href="../../c/io/fgetc.html" class="wikilink1" title="c:io:fgetc">fgetc</a>, <a href="../../c/io/fputc.html" class="wikilink1" title="c:io:fputc">fputc</a>, <a href="../../c/io/fread.html" class="wikilink1" title="c:io:fread">fread</a>, <a href="../../c/io/freopen.html" class="wikilink1" title="c:io:freopen">freopen</a>, <a href="../../c/io/fseek.html" class="wikilink1" title="c:io:fseek">fseek</a>, <a href="../../c/io/fwrite.html" class="wikilink1" title="c:io:fwrite">fwrite</a>, <a href="../../c/io/getc.html" class="wikilink1" title="c:io:getc">getc</a>, <a href="../../c/io/getchar.html" class="wikilink1" title="c:io:getchar">getchar</a>, <a href="../../c/io/setbuf.html" class="wikilink1" title="c:io:setbuf">setbuf</a>
</p>
</div>
<!-- wikipage stop -->
</div>
<div class="clearer"> </div>
<div class="stylefoot">
<div class="meta">
<div class="user">
</div>
<!--
<div class="doc">
c/io/fopen.txt · Last modified: 08/19/2009 14:04 by 67.169.182.18 </div>
-->
</div>
</div></div></body>
</html>