管道在1020次迭代时崩溃

时间:2014-07-31 18:47:42

标签: c multithreading fork pipe

我正在用C编程,我正在做这个

FILE *pipe;
pid_t child;
int fd[2];

child = fork();

if ( child == 0 )
{
 dup2(fd[2], STDOUT_FILENO);
 close(fd[0]);
 execl("func", "func", str_attr, NULL);

 exit(0);
}else
 {
  waitpid(child, NULL,0);
  pipe = fdopen(fd[0],"r");
  fscanf(pipe,"%s",buffer);
  fclose(pipe);
 }

当我尝试超过1019个案例时,崩溃。我尝试调试,但我的代码中没有看到任何罕见的东西。通过1020迭代时管道似乎已经破裂了

1 个答案:

答案 0 :(得分:0)

想想我修好了,我已经达到了filedescriptors的限制 - user3358907