Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Oct 2001 07:07:18 GMT
From:      Cliff Sarginson <cliff@raggedclown.net>
To:        Joe Clarke <marcus@marcuscom.com>, Matthew Blacklow <matthew.blacklow@ticca.com>, freebsd-questions@FreeBSD.ORG
Subject:   Re: C clue on FreeBSD
Message-ID:  <E15vZB8-000G8J-00@post.mail.nl.demon.net>

next in thread | raw e-mail | index | archive | help
> 
> 
> On Mon, 22 Oct 2001, Joe Clarke wrote:
> 
> >
> >
> > On Mon, 22 Oct 2001, Matthew Blacklow wrote:
> >
> > > Hi all,
> > > 	I am running FreeBSD and am trying to learn C. I have a program at the
> > > moment which using C's "system" function launches a FreeBSD application. The
> > > problem is that it outputs to the screen all the output of the spawned
> > > process. I need to know how to supress the output of this process. I have
> > > looked through many C programming books and on the web and cant seem to find
> > > what i am looking for.
> >
> > Try:
> >
> > system("/my/app 2>&1 >/dev/null");
> 
> Sorry, I should have said:
> 
> system("/my/app >/dev/null 2>&1");
> 
> For some reason (there may be a good one, though I don't know what it is),
> the shell doesn't redirect stderr in the first example.

The reason is as follows.
The re-directions are done from left to right.
So "2" (stderr) is associated with "1" (stdout), which at that
point is still associated with the terminal. Then "1" (stdout) is
re-directed to /dev/null, but that does not affect the re-directions
already in effect.
Reversing the order makes it work (if you think about it :)
> 
> Joe
> 
> >
> > That will redirect all stdout and stderr to /dev/null, thus making your
> > program silent.
> >
> > Joe
> >
> > >
> > > All help appreciated
> > >
> > >
> > > Thanks,
> > > Matthew
> > >
> > >
> > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > with "unsubscribe freebsd-questions" in the body of the message
> > >
> > >
> >
> >
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body of the message
> >
> >
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message


-- 

Regards
Cliff


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E15vZB8-000G8J-00>