作者ilway25 (Dedrater)
看板EE_DSnP
標題Re: [問題] resursive dofiles
時間Sat Nov 7 23:21:06 2009
※ 引述《cmh317 (Rain Man)》之銘言:
: 在DofileCmd::exec
: 教授有提到要限制max recursion depth = 1024
: 不過我用 modCacl.ref 讀取do4這個測試檔後
: 發現他好像只會recursive 1021次 =.=
: 是哪裡出了問題呢? 謝謝!
1872 有提到,我也不知道老師現在上課有沒有說,
有人問我還是說一下好了。
所有的 process 都有可用資源限制,
下面的程式可以查出一個 process 可以開檔的最大數目。
#include <stdio.h>
#include <sys/resource.h>
int main()
{
struct rlimit limit;
//get resource limit
getrlimit(RLIMIT_NOFILE, &limit);
printf("Maximum number of open files per process:\n");
printf("Current value: %d\nMax available value: %d\n",
limit.rlim_cur, limit.rlim_max);
}
一般來說,可以發現目前值是 1024,最大允許值是 1024。
如果目前值不到 1024,其實有辦法改到最大的 1024,
但是既然已經是 1024,也沒必要再改了。
1021 的原因是,有 3 個檔案在開始程式被開啟了,
至於是哪三個,可以想一下....... (學老師)
stdin, stdout, stderr
--
請開燈
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.247.76
※ 編輯: ilway25 來自: 140.112.247.76 (11/07 23:21)
1F:推 fp60403:原po強者(無誤) 11/07 23:39
2F:推 cmh317:原來如此 感謝你的回答! 11/07 23:45
3F:推 anfranion:原來如此 大推! 11/08 00:28
4F:→ anfranion:可以借我轉這篇嗎XD 11/08 00:28
5F:→ ilway25:OK 的 11/08 00:31