Даже если fileno(FILE *)
может вернуть дескриптор файла, будьте ОЧЕНЬ осторожны, чтобы не обойти буфер stdio.Если имеются данные буфера (либо чтение, либо запись без сброса), чтение / запись из файлового дескриптора может привести к неожиданным результатам.
Чтобы ответить на один из дополнительных вопросов, преобразовать файловый дескриптор в указатель FILE,используйте fdopen(3)