<html lang="en">
<head>
<title>read - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="List-of-Supported-Calls.html#List-of-Supported-Calls" title="List of Supported Calls">
<link rel="prev" href="close.html#close" title="close">
<link rel="next" href="write.html#write" title="write">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988-2019 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'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual.  Buying copies from GNU Press supports the FSF 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>
</head>
<body>
<div class="node">
<a name="read"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="write.html#write">write</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="close.html#close">close</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="List-of-Supported-Calls.html#List-of-Supported-Calls">List of Supported Calls</a>
<hr>
</div>

<h5 class="unnumberedsubsubsec">read</h5>

<p><a name="index-read_002c-file_002di_002fo-system-call-3606"></a>
     <dl>
<dt>Synopsis:<dd>
     <pre class="smallexample">          int read(int fd, void *buf, unsigned int count);
</pre>
     <br><dt>Request:<dd>&lsquo;<samp><span class="samp">Fread,</span><var>fd</var><span class="samp">,</span><var>bufptr</var><span class="samp">,</span><var>count</var></samp>&rsquo;

     <br><dt>Return value:<dd>On success, the number of bytes read is returned. 
Zero indicates end of file.  If count is zero, read
returns zero as well.  On error, -1 is returned.

     <br><dt>Errors:<dd>
          <dl>
<dt><code>EBADF</code><dd><var>fd</var> is not a valid file descriptor or is not open for
reading.

          <br><dt><code>EFAULT</code><dd><var>bufptr</var> is an invalid pointer value.

          <br><dt><code>EINTR</code><dd>The call was interrupted by the user. 
</dl>

   </dl>

   </body></html>

