复制文件指针?

Frx*_*rem 17 c file-io

只是一个简单的问题:有没有办法复制文件指针(返回的那些fopen()),类似于dup()复制函数返回的文件处理程序如何open()

基本上,我希望能够做到这样的事情:

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);
Run Code Online (Sandbox Code Playgroud)

Gon*_*alo 17

FILE *fp2 = fdopen (dup (fileno (fp)), "r");
Run Code Online (Sandbox Code Playgroud)


edu*_*ffy 11

您可以使用fileno以获取一个描述符FILE*,dup即,然后用fdopen得到一个新的FILE*来自新的描述.