美文网首页
dup2函数示例

dup2函数示例

作者: 一路向后 | 来源:发表于2020-07-22 22:05 被阅读0次

1.函数功能

int dup2(int oldfd, int targetfd);  关闭newfd并打开oldfd

2.程序源码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    char *buf1 = "hello";
    char *buf2 = " world\n";
    int fd1 = open("a.txt", O_RDWR|O_CREAT);
    int fd2 = open("b.txt", O_RDWR|O_CREAT);
    int ret = 0;

    if(fd1 < 0 || fd2 < 0)
    {
        perror("open");
        exit(-1);
    }

    printf("file open fd1=%d\n", fd1);
    printf("file open fd2=%d\n", fd2);

    ret = dup2(fd1, fd2);
    if(ret < 0)
    {
        perror("dup2");
        exit(-1);
    }

    printf("file dup fd1=%d\n", fd1);
    printf("file dup fd2=%d\n", fd2);

    write(fd1, buf1, strlen(buf1));
    write(fd2, buf2, strlen(buf2));

    return 0;
}

4.编译源码

$ gcc -o dup2 dup2.c

5.运行程序

$ ./dup
file open fd1=3
file open fd2=4
file dup fd1=3
file dup fd2=4

6.查看文件数据

$ cat a.txt
hello world
$ cat b.txt

相关文章

  • dup2函数示例

    1.函数功能 2.程序源码 4.编译源码 5.运行程序 6.查看文件数据

  • 函数dup2的理解

    看《UNIX环境高级编程》时,看到书中对函数dup和dup2的描述时,总觉得书中对函数dup2有点没说清楚,不知道...

  • [APUE习题]不使用fcntl实现dup2函数

    选自《Unix环境高级编程》习题3.2 编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并...

  • dup和dup2函数实现

    dup unix-liked操作系统中,复制文件描述符的函数dup和dup2 由于题目要求不能使用fcntl函数,...

  • dup2

    dup2(int oldfd,int newfd);这个函数是复制文件描述符,将newfd描述符所对应的文件表 改...

  • iOS处理Get请求链接参数绑定

    示例函数 示例调用

  • 2-2 写个有趣的小程序—switch

    switch函数 示例1 示例2

  • Swift学习之函数类型

    基本的函数定义及调用 带有函数类型的参数的函数定义及调用 示例一 示例二 示例三 示例四 我们把文首的定义的那个简...

  • shell-函数、数组

    函数格式 示例

  • 函数

    一、函数声明和函数表达式有什么区别 1.函数声明: 函数调用可以发生在函数声明之前;示例:示例因为‘提升’了函数声...

网友评论

      本文标题:dup2函数示例

      本文链接:https://www.haomeiwen.com/subject/aikxlktx.html