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