码迷,mamicode.com
首页 > 其他好文 > 详细

dup与dup2函数

时间:2020-03-20 12:43:13      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:har   ret   文件   恢复   dir   头文件   nis   status   flag   

  1. 依赖的头文件

    #include <unistd.h>
  2. 函数定义

    int dup(int oldfd);
    int dup2(int oldfd, int newfd);
  3. 函数作用

    • dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。
    • 如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。
    • 如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。
  4. 实战

    • 需求:在代码中执行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("hello Linux\n");
    //需要来一次刷新
    fflush(stdout);
    //需要恢复1,重新到标准输出
    dup2(outfd, 1);
    printf("hello Linux\n");
}
int main(int argc, char* argv[])
{
    file_Redirect();
    return 0;
}

dup与dup2函数

标签:har   ret   文件   恢复   dir   头文件   nis   status   flag   

原文地址:https://www.cnblogs.com/LittleFishC/p/12530820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!