如何可移植地确定pid_t类型的最大值?我的系统上没有PID_MAX常量.
(注意,我的意思是数据类型允许的最大值,而不是系统将分配给进程的事实上的最大值.)
解决方法
POSIX (2008) says:
blksize_t,pid_t,and ssize_t shall be signed integer types.
和:
The implementation shall support one or more programming environments
in which the widths of blksize_t,size_t,ssize_t,and
suseconds_t are no greater than the width of type long.
因此,您可以将用户字符串转换为long,然后使用long pid检查pid_t类型的溢出; .. pid ==(pid_t)pid.