| .TH SEEK 3 |
| .SH NAME |
| seek \- change file offset |
| .SH SYNOPSIS |
| .B #include <u.h> |
| .br |
| .B #include <libc.h> |
| .PP |
| .B |
| vlong seek(int fd, vlong n, int type) |
| .SH DESCRIPTION |
| .I Seek |
| sets the offset for the file |
| associated with |
| .I fd |
| as follows: |
| .IP |
| If |
| .I type |
| is 0, the offset is set to |
| .I n |
| bytes. |
| .IP |
| If |
| .I type |
| is 1, the pointer is set to its current location plus |
| .IR n . |
| .IP |
| If |
| .I type |
| is 2, the pointer is set to the size of the |
| file plus |
| .IR n . |
| .PP |
| The new file offset value is returned. |
| .PP |
| Seeking in a directory is not allowed. |
| Seeking in a pipe is a no-op. |
| .SH SOURCE |
| .B \*9/src/lib9/seek.c |
| .SH SEE ALSO |
| .IR intro (3), |
| .IR open (3) |
| .SH DIAGNOSTICS |
| Sets |
| .IR errstr . |
| .SH BUGS |
| To avoid name conflicts with the underlying system, |
| .I seek |
| is a preprocessor macro defined as |
| .IR p9seek ; |
| see |
| .IR intro (3). |