summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/popen.c
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2000-01-27 23:07:25 +0000
committerjasone <jasone@FreeBSD.org>2000-01-27 23:07:25 +0000
commit8abe2a2d86ee5f72093b3feeabf05c9f6f963576 (patch)
tree2ebe01199c17764ebcd26435b5ce1c06ebb67ad5 /lib/libc/gen/popen.c
parent1731b249ccd9d7586d511eda8756f5c6b57b871c (diff)
downloadFreeBSD-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.c24
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. */
OpenPOWER on IntegriCloud