Не делай этого. Не пытайтесь запустить feof()
на закрытом файле. Результат не определен. Следите за тем, какие файловые дескрипторы закрыты каким-либо другим способом, вместо того, чтобы предполагать, что EOF будет сигнализироваться о них.
В общем, НЕОБХОДИМО, чтобы при написании переносимого кода НЕОБХОДИМО неопределенного поведения в С ... оно может сделать что-то разумное на вашей платформе, но может сделать что-то совершенно нелепое или неожиданное для другой.
Люди из группы Usenet comp.lang.c
несколько лет назад придумали гипотетический компьютер DeathStation 9000 , который демонстрирует наиболее пугающее поведение в случае неопределенных конструкций. Это своего рода обучающий инструмент, который отпугивает вас от необходимости полагаться на неопределенное поведение в C: -)