Хочу поделится решением проблемы которая у меня возникла с ftok(). Есть два приложения A и B, они должны общаться между собой и значит получать ключи посредством ftok(). Получать ключи в обход ftok() нельзя поскольку они могут конфликтовать с ключами уже выданными ftok() другим программам. Пар типа A и B множество. Каждой паре A и B передается одинаковый (для данной пары, но не для множества пар) параметр (текстовая строка типа URL). Вопрос как получить ключ от ftok(). Можно манипулировать первым ее агументом (что в данном случае не подходит либо вторым который размером только char :( В linux он правда объявлен как int но используется все равно только младший байт (я специально смотрел в ядре). Можно конечно передавать каждой паре A и B этот аргумент для ftok() (типа 'a', 'b', 'c'...), но я понял что самое простое в данном случае написать библиотеку которой A и B будут передавать свои аргументы (типа URL), библиотека будет считать их хеш, класть в массив и индекс массива использовать в качестве второго аргумента ftok(), получать ключ и отдавать A и B. Хеш нужен чтобы проверять нет ли уже такого элемента массива. Вот такое примитивное, но эффективное решение данной проблемы, которое однако пришло в мою тупую голову не сразу. Может кому поможет...