gpt4 book ai didi

c - 如何获取 PID_MAX 宏?

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:53 33 4
gpt4 key购买 nike

我想获取文件 /sys/sys/proc.h 中存在的 PID_MAX 宏的值。

我当前的代码(main.c):

#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h> /* type pid_t */
#include <sys/proc.h> /* macro PID_MAX */
#include <sys/unistd.h> /* function getpid, getppid */

/*
gcc -Wall -Wextra main.c -o main
./main
*/

int main ()
{
pid_t pidmax = PID_MAX;

printf ( "Value = %d\n", pidmax );

return 0;
}

返回以下错误:

error: 'PID_MAX' undeclared (first use in this function); did you mean 'UID_MAX'?

这怎么可能?

恢复 PID_MAX 的另一种方法?

最佳答案

没有独立于平台的方法来检索最大 pid 值。例如在linux下,可以通过/proc/sys接口(interface)确定该值

$ sysctl kernel/pid_max
32768

在 FreeBSD 下,该值为 99999。如果您仔细查看 sys/proc.h,您会注意到宏 PID_MAX

保护
#ifdef _KERNEL
...
#define PID_MAX 99999
...
#endif

这就是为什么你不能(也不应该)在用户空间程序中使用它。

关于c - 如何获取 PID_MAX 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627561/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com