dup/dup2函数

有时我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接。

dup()与dup2()能对输入文件描述符进行重定向。

函数原型如下:

dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)-LMLPHP

dup函数创建一个新的文件描述符,该新文件描述符和原有文件描述符oldfd指向相同的文件、管道或者网络连接。并且dup返回的文件描述符总是取系统当前可用的最小整数值。dup2和dup类似,不过它将返回第一个不小于oldfd的整数值。

dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)-LMLPHP

dup和dup2成功返回新的文件描述符,失败则返回-1并设置errno。

1、打开一个新文件

2、dup关掉标准输出文件符(close+dup=dup2?),dup2不需要这一步

3、调用dup/dup2进行文件描述符重定向

4、此时文件描述符变为1

5、将所要打印数据重定向到文件中

dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)-LMLPHP

运行结果如下:

dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)-LMLPHP

05-11 20:17