Developer's Daily | Unix by Example |
main | java | perl | unix | dev directory | web log |
_llseek ? reposition read/write file offset |
#include <unistd.h> #include <linux/unistd.h> _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, loff_t *, res, uint, wh); int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int whence); |
The _llseek function repositions the offset of the file descriptor fd to (offset_high<<32) | offset_low bytes relative to the beginning of the file, the current position in the file, or the end of the file, depending on whether whence is SEEK_SET, SEEK_CUR, or SEEK_END, respectively. It returns the resulting file position in the argument result. |
Upon successful completion, _llseek returns 0. Otherwise, a value of ?1 is returned and errno is set to indicate the error. |
EBADF |
fd is not an open file descriptor. |
|||
EINVAL |
whence is invalid. |
This function is Linux-specific, and should not be used in programs intended to be portable. |
The ext2 filesystem does not support files with a size of 2GB or more. |
lseek(2) |