switch (__fork()) {
switch (fork()) {
daemon(nochdir, noclose)	int nochdir, noclose;{	int fd;	switch (__fork()) {	case -1:		return (-1);	case 0:		break;	default:		_exit(0);	}	if (__setsid() == -1)		return (-1);	if (!nochdir)		(void)__chdir("/");	if (!noclose && (fd = __open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {		(void)__dup2(fd, STDIN_FILENO);		(void)__dup2(fd, STDOUT_FILENO);		(void)__dup2(fd, STDERR_FILENO);		if (fd > 2)			(void)__close (fd);	}	return (0);}