-1
我想遍歷所有可能的進程ID,但爲此,我需要知道進程表的限制。我怎樣才能找到這個?Minix:確定進程表的大小
我的想法是做類似
while (counter < table size)
{
do something
}
我想遍歷所有可能的進程ID,但爲此,我需要知道進程表的限制。我怎樣才能找到這個?Minix:確定進程表的大小
我的想法是做類似
while (counter < table size)
{
do something
}
我覺得沒有POSIX API來獲取這些信息直接在C,你需要的popen()函數來調用命令行來獲得這種信息的,我不推薦system(),雖然它與popen類似(Display all process using a posix function)。
系統最大進程數可以通過ulimit命令設置/檢查。
popen("ulimit -a max user processes","r");
,或者你可以在當前進程的id檢查當前的最大數量。(PS輔助顯示的所有進程,找到sed的最後一行,和awk查找進程ID)
FILE *fp = popen("ps aux|sed -n '$p'|awk '{print $2F}'","r");
if(NULL!=fp)
{
char buff[1024];
fgets(buff,1024,fp);
printf("%s\n",buff);
pclose(fp);
}
歡迎堆棧溢出!請閱讀[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask)。你的問題應該是具體的,你的相關代碼應該[最小,完整和可驗證](https://stackoverflow.com/help/mcve)。 –