gpt4 book ai didi

c - 小型机 : Determining size of process table

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:26 25 4
gpt4 key购买 nike

我想遍历所有可能的进程 ID,但为此,我需要知道进程表的限制。我怎样才能找到它?

我的想法是做类似的事情

    while (counter < table size)
{
do something
}

最佳答案

我认为在C中没有posix API可以直接获取这些信息,你需要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);
}

关于c - 小型机 : Determining size of process table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46739985/

25 4 0