1 2 3 4 5 6 7 8 9 10 11 12
#include "stdio_impl.h" #include "syscall.h" int pclose(FILE *f) { int status, r; pid_t pid = f->pipe_pid; fclose(f); while ((r=__syscall(SYS_wait4, pid, &status, 0, 0)) == -EINTR); if (r<0) return __syscall_ret(r); return status; }