dup函数和dup2函数
有时候,我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接中(如CGI编程)。这个时候可以通过下面用于复制文件描述符的dup或dup2函数实现:
1 | #include <unistd.h> |
参数介绍
dup函数
dup函数创建一个新的文件描述符,该新的文件描述符和原有文件描述符file_description指向相同的文件、管道或者网络连接。并且dup返回系统最小可用的文件描述符。
dup2函数
dup2和dup作用是一样的,不过它将返回第一个不小于file_description_two的文件描述符。
返回值
成功,则返回新的的文件描述符。失败,则返回-1,并且设置errno。
注意:通过dup和dup2创建的文件描述符并不继承原文件描述符的属性,比如:close-on-exec和non-blocking等,这个时候需要使用fcntl来设置。