dup2
时间: 2024-02-13 20:04:37 浏览: 132
dup_dup2介绍
`dup2` 是一个系统调用函数,用于复制一个文件描述符到另一个文件描述符,同时关闭旧的文件描述符。它的原型如下:
```c
#include <unistd.h>
int dup2(int oldfd, int newfd);
```
其中,`oldfd` 是要被复制的文件描述符,`newfd` 是新的文件描述符。如果 `newfd` 已经被打开,那么它会先被关闭。`dup2` 函数的返回值是新的文件描述符。
`dup2` 函数常用于重定向标准输入、标准输出和标准错误输出。例如,可以使用以下代码将标准输出重定向到一个文件:
```c
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main() {
int fd = open("output.txt", O_WRONLY | O_CREAT, 0666);
dup2(fd, STDOUT_FILENO);
close(fd);
printf("Hello, world!\n");
return 0;
}
```
在这个例子中,`open` 函数用于打开一个文件,返回一个文件描述符 `fd`。`dup2` 函数将标准输出的文件描述符 `STDOUT_FILENO` 复制到 `fd`,这样所有的输出都会写入到文件中。最后,关闭 `fd`,释放资源。
阅读全文