Узнайте, какиеможет быть включен в ваши единицы перевода C (путем проверки пути (ов) включает путь (и)).там определен pid_t.Это целочисленный тип со знаком, но таких несколько.Он может легко быть шире, чем long.
Документация Open Groups sys / types.h обещает "Реализация должна поддерживать одну или несколько сред программирования, в которых ширина blksize_t, pid_t, size_t, ssize_t, suseconds_t и useconds_t не превышают ширину типа long. Названия этих сред программирования можно получить с помощью функции confstr () или утилиты getconf. "Таким образом, вы, вероятно, можете привести pid_t к long (или, по крайней мере, использовать getconf, чтобы узнать, что вам нужно сделать, чтобы оказаться в ситуации, когда pid_t можно безопасно привести к long).
См. C ЯзыкПоправка: строки формата printf для обсуждения того, почему то, что вы хотите сделать, является сложным, не может быть записано переносимым образом и может внезапно оборваться в будущем.