我想遍历所有可能的进程id,但为此,我需要知道流程表的限制。我怎么才能找到这个?
我的想法是做这样的事
while (counter < table size)
{
do something
}发布于 2017-10-14 02:11:21
我认为C中没有posix直接获取这些信息,您需要popen()函数来调用命令行来获取此类信息,我不推荐system(),尽管它类似于popen。(Display all process using a posix function)。
系统最大进程号可以通过命令ulimit设置/检查。
popen("ulimit -a max user processes","r"); 或者您可以检查当前进程id中的当前最大值。(ps aux显示所有进程,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/questions/46739985
复制相似问题