Daemon process

Hi,
I have to write a daemon process, which performs certain operations in the background.
Now since it performs operations in the background, it should not display anything to the standard output.
The problem is that it still displays, text on standard output.
Can anyone tell me (it is urgent) how to avoid this.
I have written the following function to initialize the daemon code ...

int
daemon_init()
{
int pid, fd;

if \(getppid\(\) == 1\)
\{
	goto out;
\}

#ifdef SIGTTOU
signal(SIGTTOU, SIG_IGN);
#endif
#ifdef SIGTTIN
signal(SIGTTIN, SIG_IGN);
#endif
#ifdef SIGTSTP
signal(SIGTSTP, SIG_IGN);
#endif

pid = fork\(\);
if \(pid < 0\)
\{		
	return -1;	
\}	
else if \(pid > 0\)
\{
	/* In parent exit leaving the child to work */	
	exit\(0\);
\}

if \(setpgrp\(\) == -1\)
\{
	return -1;	
\}
signal\(SIGHUP, SIG_IGN\);	

pid = fork\(\);
if \(pid < 0\) 
\{
	return -1;
\}
else if \(pid > 0\)
\{
	/* first child exits */	
	exit\(0\);	
\}	

out:
/for (fd = 3; fd < NOFILE; fd++)
close(fd);
/
/* In child detach from the parents session /
/*setsid();
/
chdir("/");
umask(0);

return 0;

}

This has been discussed. If you had used this site's search function you would have found this post.

If the daemon process is still sending text to the o/p , i think u can direct the o/p of the daemon
process to /dev/null and i think it shouldn't
be a problem