Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
LinuxOpen返回0_Linux_System Calls - Fatal编程技术网

LinuxOpen返回0

LinuxOpen返回0,linux,system-calls,Linux,System Calls,代码如下所示: int fd = open(filename, O_RDONLY); “最大打开文件数”为1024。这个过程可能会打开数百个文件。 一开始,它工作得很好。一段时间后,open返回0。我不知道为什么。帮助提前谢谢 ps:它不是intfd=open(filename,O_RDONLY)=-1当open返回0时,它告诉您如果要使用刚刚打开的文件,应该使用fd 0 您可能关闭了stdin吗?当打开返回0时,它告诉您如果要使用刚刚打开的文件,应该使用fd 0 您可能关闭了stdin吗?管

代码如下所示:

int fd = open(filename, O_RDONLY);
“最大打开文件数”为1024。这个过程可能会打开数百个文件。 一开始,它工作得很好。一段时间后,open返回0。我不知道为什么。帮助提前谢谢


ps:它不是
intfd=open(filename,O_RDONLY)=-1

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


您可能关闭了stdin吗?

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


您可能关闭了stdin吗?

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

管理员可以更改ulimit的一些参数
管理员可以设置“ulimit-n 2000”,每个进程打开的文件数可以是2000,因为这里使用了关系运算符,所以返回0。 Something==另一个总是0或1
在您的例子中,它告诉您open没有返回-1。

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

如果您试图通过更改代码来限制打开的文件数量,行为会改变吗?我的意思是,确保您在任何时候打开的文件都不超过1024个..但如果打开的文件太多,它应该返回-1,并将errno设置为EMFILE.是的,我是指其他的..啊,这里快6点了..睡觉时间:D看这里(并接受该问题的答案),问题非常相似:如果您试图通过更改代码来限制打开文件的数量,行为会发生变化吗?我的意思是,确保你在任何时候打开的文件都不会超过1024个。但是如果打开的文件太多,它应该返回-1,并将errno设置为EMFILE。是的,我的意思是其他的。啊,这里快6点了。睡觉时间:D看看这里(并接受该问题的答案),问题非常相似:0表示stdin,但它应该返回大于3的num?不是吗?@user2253605:它会返回它分配的任何fd。若你们关闭了stdin,0是完全公平的游戏。0意味着stdin,但它应该返回一个大于3的数值?不是吗?@user2253605:它会返回它分配的任何fd。若您关闭了stdin,则0是完全公平的。若打开的文件太多,则应返回-1,并将errno设置为EMFILE。但它返回0。为什么?如果打开的文件太多,它应该返回-1,并将errno设置为EMFILE。但它返回0。为什么?