创建备份文件描述符?

Bob*_*rbo 2 c unix

  stdinBackup = 4;
  dup2(0, stdinBackup);
Run Code Online (Sandbox Code Playgroud)

目前,我正在执行上述操作来“备份”标准输入,以便稍后在将其重定向到其他地方后可以从备份中恢复它。我有一种感觉,我做错了很多事?(例如任意分配4肯定是不对的)。有人指出我正确的方向吗?

unw*_*ind 5

如果您只是想制作一个通用副本供自己使用,则无需使用dup2(). 只需使用简单的dup():

#include <stdio.h>

int stdinBackup = dup(STDIN_FILENO);
Run Code Online (Sandbox Code Playgroud)

dup2()仅当您关心副本的实际价值时才需要使用。

符号常量的定义参见这里,这比在代码中STDIN_FILENO使用裸露要好得多。0