<html> <head> <title>lseek</title> <body bgcolor=#ffffff> <h2 align=center>lseek</h2> <h4 align=center>OS/161 Reference Manual</h4> <h3>Name</h3> lseek - change current position in file <h3>Library</h3> Standard C Library (libc, -lc) <h3>Synopsis</h3> #include <unistd.h><br> <br> off_t<br> lseek(int <em>fd</em>, off_t <em>pos</em>, int <em>whence</em>); <h3>Description</h3> lseek alters the current seek position of the file handle <em>filehandle</em>, seeking to a new position based on <em>pos</em> and <em>whence</em>. <p> If <em>whence</em> is <ul> <li> SEEK_SET, the new position is <em>pos</em>. <li> SEEK_CUR, the new position is the current position plus <em>pos</em>. <li> SEEK_END, the new position is the position of end-of-file plus <em>pos</em>. <li> anything else, lseek fails. </ul> Note that <em>pos</em> is a signed quantity. <p> It is not meaningful to seek on certain objects (such as the console device). All seeks on these objects fail. <p> Seek positions less than zero are invalid. Seek positions beyond EOF are legal. <p> Note that each distinct open of a file should have an independent seek pointer. <p> <h3>Return Values</h3> On success, lseek returns the new position. On error, -1 is returned, and <A HREF=errno.html>errno</A> is set according to the error encountered. <h3>Errors</h3> The following error codes should be returned under the conditions given. Other error codes may be returned for other errors not mentioned here. <blockquote><table width=90%> <td width=10%> </td><td> </td></tr> <tr><td>EBADF</td> <td><em>fd</em> is not a valid file handle.</td></tr> <tr><td>ESPIPE</td> <td><em>fd</em> refers to an object which does not support seeking.</td></tr> <tr><td>EINVAL</td> <td><em>whence</em> is invalid.</td></tr> <tr><td>EINVAL</td> <td>The resulting seek position would be negative.</td></tr> </table></blockquote> </body> </html>