#include #include #include #include "syscall.h" int dup2(int old, int new) { int r; #ifdef SYS_dup2 while ((r=__syscall(SYS_dup2, old, new))==-EBUSY); #else if (old==new) { r = __syscall(SYS_fcntl, old, F_GETFD); if (r >= 0) return old; } else { while ((r=__syscall(SYS_dup3, old, new, 0))==-EBUSY); } #endif return __syscall_ret(r); }