标签: c unix
stdinBackup = 4; dup2(0, stdinBackup);
目前我正在执行上述'备份'标准输入,以便稍后将其重定向到其他位置后可以从备份恢复。我有一种感觉,我做错了很多? (例如,任意分配4肯定是不对的)。有人指出我正确的方向吗?
答案 0 :(得分:4)
如果您只想制作一般副本供自己使用,则无需使用dup2()。只需使用普通的dup():
dup2()
dup()
#include <stdio.h> int stdinBackup = dup(STDIN_FILENO);
当您关心副本的实际值时,您只需要使用dup2()。
有关符号常量STDIN_FILENO的定义,请参阅here,这比在代码中使用裸0要好得多。
STDIN_FILENO
0