Home > Blockchain >  What if lseek() pass beyond the beginning of the file?
What if lseek() pass beyond the beginning of the file?

Time:12-14

As the documentation highlighted, the lseek() function allows the file offset to be set beyond the end of the file. But what if I set it beyond the beginning of the file?

Let the current offset be 5, What will actually happen when I try lseek(fd, 10, SEEK_END) ?

As mentioned, assume that I create a new file, and call the function write(fd, buf, 5) . The current file offset would be 5. Then using lseek function above, I expect the result would either be 0 or some errors may occurred.

CodePudding user response:

Assuming that what you're asking if you can seek to before the beginning of the file (which your code example wouldn't do):

The specification for lseek() says that it will return -1 and set errno to EINVAL:

The whence argument is not a proper value, or the resulting file offset would be negative for a regular file, block special file, or directory.

  • Related