linux open返回0

时间:2013-04-07 02:45:46

标签: linux system-calls

代码是这样的:

int fd = open(filename, O_RDONLY);

“max open files”是1024.该过程可能会打开数百个文件。 一开始,它运作良好。过了一会儿,打开返回0.我不知道为什么。救命!!!谢谢你!

ps:不是int fd = open(filename, O_RDONLY) == -1;

3 个答案:

答案 0 :(得分:4)

open返回0时,它告诉您如果要使用刚刚打开的文件,则应使用fd 0。

你有没有关闭stdin?

答案 1 :(得分:0)

admin可以更改ulimit的一些参数 admin可以设置“ulimit -n 2000”,每个进程的打开文件数可以是2000

答案 2 :(得分:0)

它返回0,因为您在这里使用了关系运算符。 ==另一个总是0或1 在您的情况下,它告诉您open没有返回-1。