У меня есть требование, где в нем есть глобальныйFILE
указатель/дескриптор. Одна из функций будет считываться из этого указателя/дескриптора. внутренний указатель связанный с FILE
указатель/дескриптор авансов. После того, как эта функция вернется, Я хочу прочитать от того же FILE
указатель/дескриптор, а также те же данные, что и другая функция чтения.Сохранение/дублирование указателя/дескриптора файла
Но я не могу прочитать те же точные данные, что и внутренний указатель. Дублирование дескриптора не работает как дубликат зеркал оригинала. Сохранение указателя FILE
перед чтением также не работает, поскольку оно является указателем и снова начнет ссылаться на одно и то же.
Один из вариантов заключается в сохранении позиции файла с использованием fgetpos()
перед чтением и использованием fsetpos()
перед следующим чтением.
Но это работает для указателей файлов, а не для дескрипторов.
С обычными указателями это так просто. Но с FILE
вещи становятся сложнее.
Есть ли другие не-неуклюжие способы достижения этой цели?
'man lseek' для дескрипторов файлов –
Почему вы хотите дважды прочитать данные? Это неудобно, и любой способ сделать это будет по своей сути неуклюжим. –
@WilliamPursell Сценарий заключается в том, что я должен регистрировать данные для отладки и использовать их для других целей. –