Предотвращение повторного использования файловых дескрипторов

Есть ли в Linux (или, в более общем смысле, в ОС POSIX) гарантия того, что во время выполнения программы никакие файловые дескрипторы не будут использоваться повторно, даже если один файл будет закрыт, а другой открыт? Насколько я понимаю, эта ситуация обычно приводит к тому, что файловый дескриптор для закрытого файла переназначается вновь открытому файлу.

Я работаю над проектом трассировки ввода-вывода, и было бы проще, если бы я мог предположить, что после вызова open()/fopen() все последующие операции ввода-вывода для этого файлового дескриптора относятся к тому же файлу. .

Я выберу решение либо времени компиляции, либо времени выполнения.

Если это невозможно, я мог бы вести собственный учет при обработке файла трассировки (отмечая расположение всех вызовов open и close), но я бы предпочел устранить проблему во время выполнения трассируемой программы.

5
задан mhowison 20 May 2012 в 00:26
поделиться