代码是这样的:
int fd = open(filename, O_RDONLY);
“max open files”是1024.该过程可能会打开数百个文件。 一开始,它运作良好。过了一会儿,打开返回0.我不知道为什么。救命!!!谢谢你!
ps:不是int fd = open(filename, O_RDONLY) == -1;
答案 0 :(得分:4)
当open
返回0时,它告诉您如果要使用刚刚打开的文件,则应使用fd 0。
你有没有关闭stdin?
答案 1 :(得分:0)
admin可以更改ulimit的一些参数 admin可以设置“ulimit -n 2000”,每个进程的打开文件数可以是2000
答案 2 :(得分:0)
它返回0,因为您在这里使用了关系运算符。 ==另一个总是0或1 在您的情况下,它告诉您open没有返回-1。