bdo*_*lan 21
如果您使用的是POSIXy系统(我认为fileno()您可以使用),您可以使用dup()克隆文件描述符:
int newfd = dup(fileno(stream));
fclose(stream);
Run Code Online (Sandbox Code Playgroud)
或者您可以fdopen()提交重复的文件描述符:
FILE *stream = fdopen(dup(fd), "r");
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,fd的另一个副本都不会关闭FILE *.但是,请记住位置指针是共享的,因此如果同时使用两者,请务必小心.此外,关闭副本时,将释放fcntl()原始fd上保留的任何锁定.
| 归档时间: |
|
| 查看次数: |
6057 次 |
| 最近记录: |