Minix:确定进程表的大小
问题描述:
我想遍历所有可能的进程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)。 –