typedef int __pid_t; extern __pid_t fork (void) ; extern int printf (__const char *__restrict __format, ...) ; extern char *strerror (int __errnum) ; extern int errno; extern int *__errno_location (void) __attribute__ ((__const__)); extern void _exit (int __status) __attribute__ ((__noreturn__)); extern void exit (int __status) __attribute__ ((__noreturn__)); extern int close (int __fd) ; extern int dup (int __fd) ; extern int open (__const char *__file, int __oflag, ...) ; char myname[]="foo"; detach() { switch(fork()) { case -1: printf("%s: Error: fork - %s\n",myname, strerror((*__errno_location ()) )); exit(255); case 0: close(0); close(1); close(2); dup(dup(open("/dev/null", 02 ))); return; default: _exit(0); } }