文件读取错误:成功

Ric*_*ard 0 c unix

我有如下基本代码,

   fd = open("test.file", O_RDONLY);
   if (read(fd, &tempch, 1) < 1) {
         perror("File Read Error");
         exit(1);
   }
   printf("We could read from the file\n");
Run Code Online (Sandbox Code Playgroud)

test.file存在于文件系统中,并已获得777权限.程序抛出错误"文件读取错误:成功"...任何人都可以说出可能的原因吗?谢谢

Tim*_*ost 6

read()返回零计数是完全正常的,它只是意味着它遇到了文件的结尾.如果它返回的值小于零,则表示错误.

如果返回-1,errno则应设置,这将告诉您出了什么问题.

你的文件包含什么吗?由于您提到了类似UNIX的权限,因此read()POSIX规范应该对您有用.