Minix:确定进程的大小 table
Minix: Determining size of process table
我想遍历所有可能的进程 ID,但为此,我需要知道进程的限制 table。我怎样才能找到它?
我的想法是做类似的事情
while (counter < table size)
{
do something
}
我认为没有posix API可以直接在C中获取这些信息,你需要popen()函数调用命令行来获取这种信息,我不推荐系统() 虽然它类似于 popen.(Display all process using a posix function).
系统最大进程数可以通过命令ulimit set/check。
popen("ulimit -a max user processes","r");
或者您可以检查当前进程 ID 中的当前最大数量。(ps aux 显示所有进程,sed 查找最后一行,awk 查找进程 ID)
FILE *fp = popen("ps aux|sed -n '$p'|awk '{print F}'","r");
if(NULL!=fp)
{
char buff[1024];
fgets(buff,1024,fp);
printf("%s\n",buff);
pclose(fp);
}
我想遍历所有可能的进程 ID,但为此,我需要知道进程的限制 table。我怎样才能找到它?
我的想法是做类似的事情
while (counter < table size)
{
do something
}
我认为没有posix API可以直接在C中获取这些信息,你需要popen()函数调用命令行来获取这种信息,我不推荐系统() 虽然它类似于 popen.(Display all process using a posix function).
系统最大进程数可以通过命令ulimit set/check。
popen("ulimit -a max user processes","r");
或者您可以检查当前进程 ID 中的当前最大数量。(ps aux 显示所有进程,sed 查找最后一行,awk 查找进程 ID)
FILE *fp = popen("ps aux|sed -n '$p'|awk '{print F}'","r");
if(NULL!=fp)
{
char buff[1024];
fgets(buff,1024,fp);
printf("%s\n",buff);
pclose(fp);
}