1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* Public domain. */ #include <unistd.h> #include <fcntl.h> #include "fd.h" int fd_copy(int to,int from) { if (to == from) return 0; if (fcntl(from,F_GETFL,0) == -1) return -1; close(to); if (fcntl(from,F_DUPFD,to) == -1) return -1; return 0; }