Я вижу проблему с использованием сокетов и каналов в Linux. В частности, мы вызываем pipe (), который выделяет следующие два доступных файловых дескриптора ... скажем, 10 и 11. Затем мы вызываем accept () для сокета, ожидая, что он выделит 12. Вместо этого он выделяет 11.
Мы немного протестировали, и кажется, что второй FD, возвращаемый из pipe (), всегда доступен для повторного использования другими системными вызовами, которые создают файловые дескрипторы.
Может кто-нибудь объяснить это?