Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 调用lseek64-Linux后读取文件_C_Linux_File - Fatal编程技术网

C 调用lseek64-Linux后读取文件

C 调用lseek64-Linux后读取文件,c,linux,file,C,Linux,File,我正在尝试读取一个大文件(>2.0 GB)。 查找由lseek64完成,然后我尝试使用read(fileHandle,buffer,bufferLength)\pread64(fileHandle,buffer,bufferLength,offset)进行读取,但两者都返回-1 可能是什么 提前谢谢 你有吗 ssize_t count = read(fileHandle, buffer, bufferLength); if ( count == -1 ) { fprintf(stderr, "

我正在尝试读取一个大文件(>2.0 GB)。 查找由lseek64完成,然后我尝试使用read(fileHandle,buffer,bufferLength)\pread64(fileHandle,buffer,bufferLength,offset)进行读取,但两者都返回-1

可能是什么

提前谢谢

你有吗

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
在包含系统调用头之前?否则,请显示一些代码。

您有吗

#define _FILE_OFFSET_BITS 64

在包含系统调用头之前?否则,请显示一些代码。

请提供更多上下文。档案有多大?你想去哪里?如果你寻求小的偏移量,它能工作吗?你能发布相关的代码片段吗?除此之外,调试此文件非常困难…文件大小为2.39 GB,但其他大小类似的文件也会出现这种情况。errno的值是EIO。很难只剪切相关代码(这是一个库的一部分,做的更多…),但这是一个重要的部分:我在运行在虚拟机上的Redhat上运行它,文件实际上在主机上(而不是Redhat VM本身)。谢谢大家!!至少在读后放一个perror()语句,这将更准确地解释它失败的原因。请提供更多上下文。档案有多大?你想去哪里?如果你寻求小的偏移量,它能工作吗?你能发布相关的代码片段吗?除此之外,调试此文件非常困难…文件大小为2.39 GB,但其他大小类似的文件也会出现这种情况。errno的值是EIO。很难只剪切相关代码(这是一个库的一部分,做的更多…),但这是一个重要的部分:我在运行在虚拟机上的Redhat上运行它,文件实际上在主机上(而不是Redhat VM本身)。谢谢大家!!至少在读取之后放一个perror()语句,这将更精确地解释它失败的原因。