设置低rlimit_nproc值甚至不允许单个fork

时间:2015-09-18 10:32:16

标签: c fork setrlimit

我正在尝试使用setrlimit来限制程序可以创建的进程数。这是我的代码:

Views

由于struct rlimit limiter; getrlimit( RLIMIT_NPROC, &limiter ); limiter.rlim_max = limiter.rlim_cur = 10; setrlimit( RLIMIT_NPROC, &limiter ); int val = fork(); printf( "Error number %d\n", errno ); //gives 11 if( val == -1 ) { printf( "Fork failed\n" ); } else if( val ) { printf( "parent\n" ); } else { printf("child\n" ); } return 0; rlim_max的值为10,因此应该允许我的程序分叉10个进程。但是现在即使是一次拨打电话也没能失败。虽然如果我将值设置为250左右就行了。我不明白为什么会这样。我想要一种方法将分叉数量限制为rlim_cur

0 个答案:

没有答案