stdinBackup = 4;
dup2(0, stdinBackup);
Run Code Online (Sandbox Code Playgroud)
目前,我正在执行上述操作来“备份”标准输入,以便稍后在将其重定向到其他地方后可以从备份中恢复它。我有一种感觉,我做错了很多事?(例如任意分配4肯定是不对的)。有人指出我正确的方向吗?
如果您只是想制作一个通用副本供自己使用,则无需使用dup2(). 只需使用简单的dup():
#include <stdio.h>
int stdinBackup = dup(STDIN_FILENO);
Run Code Online (Sandbox Code Playgroud)
dup2()仅当您关心副本的实际价值时才需要使用。
符号常量的定义参见这里,这比在代码中STDIN_FILENO使用裸露要好得多。0