作者:Hyukjae333 | 来源:互联网 | 2023-01-12 16:57
我想做dup2(fd, 1); close(fd);
并::std::cout
写入新的fd 1.我怎样才能重置状态,::std::cout
所以没什么好笑的?例如,预先冲洗是否足够?或者还有更多事要做吗?
我对同样的事情也很好奇::std::cin
.
如果你更改了他们在其下面使用的文件描述符,是否有一种重置这些的标准机制?
要明确的是,我的目标基本上是将我自己的输入和输出重定向到其他地方.我希望不会让这个过程无意中在其父级的stdout上烧掉某些东西,或者试图从其父级的stdin中消耗任何东西.而且我再也不想触摸父母的stdin或stdout了.我想忘记他们曾经存在过.
而且我最特别的是不想无意中将输出发送到我父母在不同文件描述符上使用的同一设备.
我的目标是让cin和cout导致与过程开始时完全不同的地方,并且永远不会以任何方式触及他们过去所处的地方.永远!