diff options
author | jasone <jasone@FreeBSD.org> | 2000-01-27 23:07:25 +0000 |
---|---|---|
committer | jasone <jasone@FreeBSD.org> | 2000-01-27 23:07:25 +0000 |
commit | 8abe2a2d86ee5f72093b3feeabf05c9f6f963576 (patch) | |
tree | 2ebe01199c17764ebcd26435b5ce1c06ebb67ad5 /lib/libc/gen/popen.c | |
parent | 1731b249ccd9d7586d511eda8756f5c6b57b871c (diff) | |
download | FreeBSD-src-8abe2a2d86ee5f72093b3feeabf05c9f6f963576.zip FreeBSD-src-8abe2a2d86ee5f72093b3feeabf05c9f6f963576.tar.gz |
Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),
just use _foo() <-- foo(). In the case of a libpthread that doesn't do
call conversion (such as linuxthreads and our upcoming libpthread), this
is adequate. In the case of libc_r, we still need three names, which are
now _thread_sys_foo() <-- _foo() <-- foo().
Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(),
nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo().
Remove all internal libc usage of: creat(), pause(), sleep(), system(),
tcdrain(), wait(), and waitpid().
Make thread cancellation fully POSIX-compliant.
Suggested by: deischen
Diffstat (limited to 'lib/libc/gen/popen.c')
-rw-r--r-- | lib/libc/gen/popen.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/libc/gen/popen.c b/lib/libc/gen/popen.c index c744efd..7939b8f 100644 --- a/lib/libc/gen/popen.c +++ b/lib/libc/gen/popen.c @@ -85,8 +85,8 @@ popen(command, type) return (NULL); if ((cur = malloc(sizeof(struct pid))) == NULL) { - (void)_libc_close(pdes[0]); - (void)_libc_close(pdes[1]); + (void)_close(pdes[0]); + (void)_close(pdes[1]); return (NULL); } @@ -97,8 +97,8 @@ popen(command, type) switch (pid = vfork()) { case -1: /* Error. */ - (void)_libc_close(pdes[0]); - (void)_libc_close(pdes[1]); + (void)_close(pdes[0]); + (void)_close(pdes[1]); free(cur); return (NULL); /* NOTREACHED */ @@ -112,10 +112,10 @@ popen(command, type) * the compiler is free to corrupt all the local * variables. */ - (void)_libc_close(pdes[0]); + (void)_close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { (void)dup2(pdes[1], STDOUT_FILENO); - (void)_libc_close(pdes[1]); + (void)_close(pdes[1]); if (twoway) (void)dup2(STDOUT_FILENO, STDIN_FILENO); } else if (twoway && (pdes[1] != STDIN_FILENO)) @@ -123,12 +123,12 @@ popen(command, type) } else { if (pdes[0] != STDIN_FILENO) { (void)dup2(pdes[0], STDIN_FILENO); - (void)_libc_close(pdes[0]); + (void)_close(pdes[0]); } - (void)_libc_close(pdes[1]); + (void)_close(pdes[1]); } for (p = pidlist; p; p = p->next) { - (void)_libc_close(fileno(p->fp)); + (void)_close(fileno(p->fp)); } execve(_PATH_BSHELL, argv, environ); _exit(127); @@ -138,10 +138,10 @@ popen(command, type) /* Parent; assume fdopen can't fail. */ if (*type == 'r') { iop = fdopen(pdes[0], type); - (void)_libc_close(pdes[1]); + (void)_close(pdes[1]); } else { iop = fdopen(pdes[1], type); - (void)_libc_close(pdes[0]); + (void)_close(pdes[0]); } /* Link into list of file descriptors. */ @@ -177,7 +177,7 @@ pclose(iop) (void)fclose(iop); do { - pid = _libc_waitpid(cur->pid, &pstat, 0); + pid = _wait4(cur->pid, &pstat, 0, (struct rusage *)0); } while (pid == -1 && errno == EINTR); /* Remove the entry from the linked list. */ |