zoukankan      html  css  js  c++  java
  • my dup2

    #include <fcntl.h>
    #include <stdio.h>
    #include <unistd.h>

    int mydup(int i_OldFd, int i_NewFd);


    int main(void)
    {
    int fd = -1;
    fd = open("tests.c", O_RDONLY);

    if(fd < 0)
    {
    printf("error. ");
    return -1;
    }

    printf("the old_fd:%d. ", fd);

    int tmp = mydup(fd, 100);

    printf("the new_fd:%d. ",tmp);
    return 1;
    }


    int mydup(int i_OldFd, int i_NewFd)
    {
    if(i_OldFd < 0 || i_OldFd >256)
    {
    printf("Oldfd is wrong. ");
    return -1;
    }

    if(i_NewFd < 0 || i_NewFd > 256)
    {
    printf("Newfd is wrong. ");
    return -1;
    }

    if( i_NewFd == i_OldFd)
    return i_OldFd;

    int i_Arrayfd[256];
    int count = 0;
    close(i_NewFd);

    do
    {
    i_Arrayfd[count] = dup(i_OldFd);
    if(i_Arrayfd[count] == -1)
    {
    printf("dup error. ");
    break;
    }
    count++;

    }while(i_Arrayfd[count-1] != i_NewFd);


    for(int i = 0; i < count-1 ; i++)
    {
    close(i_Arrayfd[i]);
    }

    return i_Arrayfd[count-1];
    }

  • 相关阅读:
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    3.1
    面向对象
  • 原文地址:https://www.cnblogs.com/malware/p/3375682.html
Copyright © 2011-2022 走看看