看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《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)
fp60403:原po強者(無誤) 11/07 23:39
cmh317:原來如此 感謝你的回答! 11/07 23:45
anfranion:原來如此 大推! 11/08 00:28
anfranion:可以借我轉這篇嗎XD 11/08 00:28
ilway25:OK 的 11/08 00:31