0
我正在嘗試讀取一個大文件(> 2.0 GB)。 尋找是由lseek64完成的,然後我嘗試使用read(fileHandle,buffer,bufferLength)\ pread64(fileHandle,buffer,bufferLength,offset)讀取 - 但兩者都返回-1。調用lseek64後從文件讀取 - Linux
它可能是什麼?
在此先感謝!
我正在嘗試讀取一個大文件(> 2.0 GB)。 尋找是由lseek64完成的,然後我嘗試使用read(fileHandle,buffer,bufferLength)\ pread64(fileHandle,buffer,bufferLength,offset)讀取 - 但兩者都返回-1。調用lseek64後從文件讀取 - Linux
它可能是什麼?
在此先感謝!
ssize_t count = read(fileHandle, buffer, bufferLength);
if (count == -1)
{
fprintf(stderr, "can't read file: %m\n");
exit(1);
}
你有
#define _FILE_OFFSET_BITS 64
您包括系統調用之前頭?否則,顯示一些代碼。
更多背景請。文件有多大?你在尋找什麼?如果您尋求小偏移量,它會起作用嗎? – 2010-05-09 14:56:57
你能發佈相關的代碼片段嗎?這很難調試,否則... – 2010-05-09 14:57:55
該文件的大小爲2.39 GB,但它也發生在其他類似大小的文件。 errno的價值是EIO。 – rkellerm 2010-05-09 15:03:55