fdopen
возвращает FILE*
, поэтому вы должны fclose
. Это также закроет основной файловый дескриптор.
Вызов pclose
предназначен для закрытия дескриптора, созданного с помощью popen
, функции, которую вы используете для запуска команды и подключения к ней с помощью каналов.
Вызов close
закроет базовый файловый дескриптор, но, к сожалению, до того, как дескриптор файла сможет сбросить свои данные - другими словами, вы, вероятно, потеряете данные.