zoukankan      html  css  js  c++  java
  • APUE 习题3-2 实现dup2,要求不使用fcntl函数。

    int mydup2(int oldfd, int newfd)
    {
        int tfd = 0;
        if (newfd < 0)
        {
            err_sys("newfd < 0");
        }
        if (newfd == oldfd)
        {
            return oldfd;
        }
     
        while(1)
        {
            tfd = dup(oldfd);
     
            if (tfd == newfd)
            {
                return newfd;
            }
            else if (tfd > newfd)
            {
                close(newfd);
            }
        }
    }
     
    测试:
    #include "apue.h"
    #include <fcntl.h>
     
    int mydup2(int oldfd, int newfd);
    int main(void)
    {
        int fd = 0;
        fd = open("testdup2.dat", O_RDWR | O_CREAT | O_TRUNC);
        if (fd < 0)
        {
            printf("open error. ");
            return -1;
        }
     
        if (mydup2(fd, STDOUT_FILENO) < 0)
        {
            printf("mydup2 error ");
            return -1;
        }
     
        printf("slk ");
     
        return 0;
    }
     
    int mydup2(int oldfd, int newfd)
    {
        int tfd = 0;
        if (newfd < 0)
        {
            err_sys("newfd < 0");
        }
        if (newfd == oldfd)
        {
            return oldfd;
        }
     
        while(1)
        {
            tfd = dup(oldfd);
     
            if (tfd == newfd)
            {
                return newfd;
            }
            else if (tfd > newfd)
            {
                close(newfd);
            }
        }
    }
     
    可以把输出重定向到testdup2.dat,成功
  • 相关阅读:
    微博回调接口
    vue获取微博授权URL
    生成微博授权url接口
    微博账号注册
    电脑程式直接打开文件
    关于 transparent rgba display:none; opacity visiblity 关于em
    定位及部分属性
    盒模型以及部分小笔记
    htm基础知识,css的链入以及标签分类。
    JS函数01
  • 原文地址:https://www.cnblogs.com/shenlinken/p/5732817.html
Copyright © 2011-2022 走看看