Skip site navigation (1)Skip section navigation (2)
Date:        Sun, 08 Jul 2001 13:29:07 +0200
From:      Arjan Knepper <arjan@jak.nl>
To:        Gabriel Ambuehl <gabriel_ambuehl@buz.ch>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Passing data in C++ via stdin without waiting for the new process to  complete
Message-ID:  <3B484403.1BA9A21D@jak.nl>
References:  <114577608557.20010708130014@buz.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
read :

man -a 2 fork
man -a 2 rfork
man -a 2 vfork
man -a 2 wait
man -a 2 _exit
man -a 3 exit
man -a 2 dup dup2

Good luck
Arjan Knepper

P.S Buy the book : "Advanced Programming in teh UNIX environment" by
W.R.Stevens ISBN:0-201-56317-7 and maybe his other books about "Unix
Network Programming" as well.
(Saw those for sale on the streets in NY !!)

Gabriel Ambuehl wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
>
> Hello,
>
> I wonder how I could efficiently achieve to pass data via stdin to a
> new process spawned by the current one without having the parent
> process waiting for the child to complete. I just want to spawn the
> child, pass the data to it and then forget about it, no matter how
> long it takes for the child to complete.
>
> popen() doesn't appear to be a suitable tool for this kind of work as
> the manpage says:
>
>     The pclose() function waits for the associated process to
> terminate and
>     returns the exit status of the command as returned by wait4().
>
> which means that the parent is blocked til the client finishes.
>
> system("echo data | some_app");
> does work, but the parent process still is blocked till the child
> finishes and I don't think it's the most efficient of all ideas to
> first spawn a shell (although popen() appears to be doing this as
> well), then spawn an instance of echo just to get the data where it
> should be and then spawn the third process to do the actual work.
>
> Any comments would greatly be appreciated.
>
> TIA & best regards,
>  Gabriel
> 
>
> -----BEGIN PGP SIGNATURE-----
> Version: PGP 6.5i
>
> iQEVAwUBO0gvNMZa2WpymlDxAQGQ2QgAu3XWwCawKeL8UcozL15BthwMIN3Ousow
> mL3AQpQUDrV3areksXaQLnGwjTVUZMZf+wSruYKXubwcl3uTI5RmH38QvoDrD9OU
> 045BJhSsu0AxsX8oNGTm/Ch9vr9onJzJF3Ur5AdzwG2FQJ8pH2HkFF3sBJw1HklY
> p7+WpJgBIF3g4aFyTKoAe/qJihsBgIiPDoWbXRG8lISf84YBcmUOecE0NAHjPMjB
> OjF3O+YFKys+JLHBrVwMGnNxKPzEmMFLZrZbdaW0PFpQMXEn+oxaTHfgDMhCdIyo
> BcH0nAxBnXZRX2jzXExs/ITVNsOatuaFRN6XT2QR9tt304dqKm/tLw==
> =qE6e
> -----END PGP SIGNATURE-----
>
> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B484403.1BA9A21D>