Just a quick question: Is there a way to duplicate a file pointer (those returned by fopen()
), similar to how dup()
duplicates a file handlers returned by functions like open()
?
Basically, I want to be able to do something like this:
FILE *fp = fopen("some_file", "r");
FILE *fp2 = /* do something to duplicate the file pointer */;
fclose(fp); // fp2 is still open
/* do something with fp2 */
fclose(fp2);
I opened twice the same file and assigned two pointers and in the end closed both separately. In my case I had to show the content in a text window using one pointer and process the data in file using the other pointer. e.g.
You could use
fileno
to get a descriptor for aFILE*
,dup
that, and then usefdopen
to get a newFILE*
from the new descriptor.