#include <unistd.h>
int dup2(int oldfd, int newfd);
参数:
oldfd:这是你想要复制的文件描述符。(最后被保留下来的fd)
newfd:这是你想要将oldfd复制到的文件描述符位置。
返回值:
成功时,返回newfd(即复制后的文件描述符,通常与newfd参数相同,除非newfd之前已经打开并被关闭)。
失败时,返回-1,并设置errno以指示错误类型。
dup2(dp,1);
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
int main()
{
close(1);
int fd = open("myfile", O_WRONLY|O_CREAT, 00644);
printf("fd: %d\n", fd);//输出结果为1
fflush(stdout);
close(fd);
exit(0);
}