当前位置: 技术问答>linux和unix
UNIX环境下,如何实现dup2函数,不允许调用fcntl?
来源: 互联网 发布时间:2016-02-29
本文导语: RT | 帮你写了一个,已经测试过了。可以用dup来实现dup2 int replace_dup2(int oldfd,int newfd){ char *p=(char*)malloc(newfd>oldfd?newfd:oldfd); int i=0; do{ p[i]=dup(newfd); } while(p[i++]0) ...
RT
|
帮你写了一个,已经测试过了。可以用dup来实现dup2
int replace_dup2(int oldfd,int newfd){
char *p=(char*)malloc(newfd>oldfd?newfd:oldfd);
int i=0;
do{ p[i]=dup(newfd); } while(p[i++]0)
close(p[i]);
}
free(p);
return newfd;
}
int replace_dup2(int oldfd,int newfd){
char *p=(char*)malloc(newfd>oldfd?newfd:oldfd);
int i=0;
do{ p[i]=dup(newfd); } while(p[i++]0)
close(p[i]);
}
free(p);
return newfd;
}
|
dup2不是函数吧,是系统调用!这是OS实现的!