dup与dup2函数
依赖的头文件 #include <unistd.h> 函数定义 int dup(int oldfd); int dup2(int oldfd, int newfd); 函数作用 dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。 如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。 如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。 实战 需求:在代码中执行2次printf("hello Linux\n"),前一次输入到world文件中,后一次输入到屏幕上 #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> void file_Redirect() { //先备份现场 int outfd = dup(1); //先做重定向 int fd = open("world", O_WRONLY|O_CREAT,0666); //标准输出到重定向fd到对应的文件 dup2(fd, 1); printf(