1、dup函数
int dup(int oldfd);
功能:复制文件描述符,新返回一个文件描述符oldfd对应的文件
2、dup2函数
int dup2(int oldfd,int newfd);
功能: 关闭newfd对应的文件描述符,将newfd重新指向oldfd对应的文件
实战:
功能:在代码中执行2次printf(“hello world\n”),一次输出到world文件中,后一次输入到屏幕上
涉及文件重定向
#include<stdio.h>
#include<unistd.h>
#include<sys/type.h>
#include<sys/stat.h>
#include<fcntl.h>
int main()
{
//先备份现场
int outfd=dup(1);
int fd=open("world",O_WRONLY|O_CREAT,0666);//d打开文件
dup2(fd,1);//重定向
printf("hello world\n");//将输出输入到文件里面
fflush(stdout);//刷新
//需要恢复1 标准输出
dup(outfd,1)
printf("hello world\n");
close(fd);
return 0;
}