aboutsummaryrefslogtreecommitdiff
path: root/src/stdio/pclose.c
blob: 1cdd14dbc9b46c5e5db1acebe5944e5525e99197 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdio_impl.h"
#include <errno.h>
#include <unistd.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;
}


#ifdef TEST
int
main(void) {
	return 0;
}
#endif