off_t lseek(int fildes, off_t offset, int whence);
標籤 | 描述 |
---|---|
SEEK_SET | |
The offset is set to offset bytes. | |
SEEK_CUR | |
The offset is set to its current location plus offset bytes. | |
SEEK_END | |
The offset is set to the size of the file plus offset bytes. |
標籤 | 描述 |
---|---|
EBADF | fildes is not an open file descriptor. |
EINVAL | whence is not one of SEEK_SET, SEEK_CUR, SEEK_END; or the resulting file offset would be negative, or beyond the end of a seekable device. |
EOVERFLOW | |
The resulting file offset cannot be represented in an off_t. | |
ESPIPE | fildes is associated with a pipe, socket, or FIFO. |
Linux specific restrictions: using lseek() on a tty device returns ESPIPE.
當與下面的巨集轉換舊的程式碼,用於何處替換值:
old | new |
0 | SEEK_SET |
1 | SEEK_CUR |
2 | SEEK_END |
L_SET | SEEK_SET |
L_INCR | SEEK_CUR |
L_XTND | SEEK_END |
SVr1-3 returns long instead of off_t, BSD returns int.
Note that file descriptors created by dup(2) or fork(2) share the current file position yiibaier, so seeking on such files may be subject to race conditions.