1typedef int __pid_t;
2extern __pid_t fork  (void)    ;
3extern int printf  (__const char *__restrict __format, ...)    ;
4extern char *strerror  (int __errnum)    ;
5extern int errno;
6extern int *__errno_location  (void)     __attribute__ ((__const__));
7extern void _exit  (int __status)   __attribute__ ((__noreturn__));
8extern void exit  (int __status)     __attribute__ ((__noreturn__));
9extern int close  (int __fd)    ;
10extern int dup  (int __fd)    ;
11extern int open  (__const char *__file, int __oflag, ...)    ;
12
13
14char	myname[]="foo";
15
16detach()
17{
18	switch(fork()) {
19	    case -1:
20		printf("%s: Error: fork - %s\n",myname, strerror((*__errno_location ()) ));
21		exit(255);
22	    case 0:
23
24		close(0);
25		close(1);
26		close(2);
27		dup(dup(open("/dev/null", 02 )));
28		return;
29	    default:
30
31		_exit(0);
32	}
33}
34