I have done some experiments and find out that
the behavior of lseek with whence set to SEEK_DATA is different from the behavior of Linux's lseek.
If the supplied offset is in the middle of a data region, it returns the start of the next data region. There may be many data regions in a big file even though it has no hole.
return value of lseek with whence set to SEEK_DATA:
I have done some experiments and find out that
the behavior of lseek with whence set to SEEK_DATA is different from the behavior of Linux's lseek.
If the supplied offset is in the middle of a data region, it returns the start of the next data region. There may be many data regions in a big file even though it has no hole.
return value of lseek with whence set to SEEK_DATA:
|--(offset) --Data- ---|(return value)----Data----| --Data- ---|--- -Hole-- --|(return value)----Data----|
|--(offset)