我想了解使用dup2
和dup
。
从手册页:
DESCRIPTION
dup and dup2 create a copy of the file descriptor oldfd.
After successful return of dup or dup2, the old and new descriptors may
be used interchangeably. They share locks, file position pointers and
flags; for example, if the file position is modified by using lseek on
one of the descriptors, the position is also changed for the other.
The two descriptors do not share the close-on-exec flag, however.
dup uses the lowest-numbered unused descriptor for the new descriptor.
dup2 makes newfd be the copy of oldfd, closing newfd first if necessary.
RETURN VALUE
dup and dup2 return the new descriptor, or -1 if an error occurred
(in which case, errno is set appropriately).
为什么我需要该系统调用?复制文件描述符有什么用?
如果我有文件描述符,为什么要复制它?
如果您能解释一下并举一个需要dup2
/的示例,我们将不胜感激dup
。
谢谢
dup
或时如何实现壳的管道功能dup2
?您需要致电pipe(2)
,然后拥有一个文件描述符dup
-ed例如STDIN_FILENO