C Unix程序不会从文件中读取

Joh*_*Boy 2 c unix

我有一个基本程序打开一个文件,该文件包含在与C文件相同的目录中(在root中).调用该文件myfile1,该文件是包含文本的简单文件.

该程序应该打开文件,计算字符数并显示它.出于某种原因,我编译程序,运行它a.out并且程序从用户获得输入并在Ctrl+D按下时完成,当它应该从文件获得输入时.

关于可能发生什么的任何想法?非常感谢,这是我到目前为止:

#include <fcntl.h>
void main(){
char buff[512];
int fd = 0;
int j=0;
long total=0;

if(fd=open("myfile1",O_RDONLY)<0){
    printf("Error");
    return 1;
}
while((j=read(fd,buff,512))>0)
    total = total+j;
printf("%d\n",total);
close(fd);
return 0;

}
Run Code Online (Sandbox Code Playgroud)

kel*_*tar 6

问题出在你的if病情上:fd=open("myfile1",O_RDONLY)<0.低于比较的优先级高于赋值.它应该是(fd=open("myfile1",O_RDONLY))<0.