Максимальное значение PID в Linux настраивается. Вы можете получить к нему доступ через файл /proc/sys/kernel/pid_max
. Этот файл (новый в Linux 2.5) задает значение, при котором PID оборачиваются (то есть значение в этом файле на единицу больше, чем максимальный PID). Значение по умолчанию для этого файла, 32768, приводит к тому же диапазону PID, что и в более ранних ядрах. Значение в этом файле может быть установлено на любое значение до 2 ^ 22 (PID_MAX_LIMIT, приблизительно 4 миллиона).
С точки зрения программирования, вы должны использовать тип pid_t
для работы с идентификатором процесса. Вы даже можете получить доступ к минимальным / максимальным значениям, используя целочисленные черты. Вот пример того, как это делается с использованием C ++ и Boost в Linux 2.6.X на платформе x86_64:
$ cat test.cpp
#include <sys/types.h>
#include <iostream>
#include <boost/integer_traits.hpp>
using namespace std;
int main ()
{
cout << "pid_t max = " << boost::integer_traits<pid_t>::const_max << endl;
}
$ ./test
pid_t max = 2147483647