C 中 close(fd) 的反义词是什么?



我正在尝试制作一个迷你shell,其中命令通过管道相互连接。在代码的某些地方,我这样做:

close(1) //closing stdout

close(0) //closing stdin

然而,后来我分叉,所以我希望我的新子进程重置一切。那么我该怎么做呢:

*function_name_here*(1) //reopening stdout

*function_name_here*(0) //reopening stdin

如果您在unix类型的系统上(如果您调用fork,您很可能),您通常可以做以下两件事之一:

第一个是打开/dev/tty,这将使您能够访问您的终端设备(假设终端设备是您想要的,而不是原始文件句柄)。

第二个是dup文件句柄之前,你关闭它,所以你有一个可用的副本。然后,您可以使用dup2将其收回。这里是Linux的详细信息,或者您也可以执行man dupman dup2

相关内容

  • 没有找到相关文章

最新更新