Максимальное количество ключей, которое может быть создано с помощью ftok
, не ограничивается целочисленным аргументом ftok
. Это зависит как от целочисленного аргумента, так и от аргумента пути. Даже если значимы только младшие 8 битов аргумента int
, число путей в теории неисчислимо.
Ключ, возвращаемый ftok
, имеет тип key_t
, который равен __S32_TYPE
, и это int
. Так что это может перейти от 2^0 to 2^31
к реализации, где int
имеет 4 байта.
Согласно справочной странице для ftok :
Функция ftok()
должна возвращать одно и то же значение ключа для всех путей, которые называют один и тот же файл, когда вызывается с тем же значением идентификатора, и возвращать разные значения ключа, когда вызывается с разными значениями идентификатора или с путями, которые называют разные файлы, существующие в одной и той же файловой системе одновременно . Не определено, будет ли ftok()
возвращать то же самое значение ключа при повторном вызове после удаления и повторного создания файла с именем path.
Но, как отмечали другие в комментариях, не рекомендуется создавать так много процессов.