From owner-freebsd-questions Sun Jul 8 4:29:29 2001 Delivered-To: freebsd-questions@freebsd.org Received: from speer.nl.uu.net (speer.nl.uu.net [193.67.79.174]) by hub.freebsd.org (Postfix) with ESMTP id 36A8337B401 for ; Sun, 8 Jul 2001 04:29:19 -0700 (PDT) (envelope-from arjan@jak.nl) Received: from 1Cust131.tnt33.rtm1.nl.uu.net ([213.116.160.131]:3251 "EHLO jak.nl") by speer.nl.uu.net with ESMTP id ; Sun, 8 Jul 2001 13:29:11 +0200 Message-ID: <3B484403.1BA9A21D@jak.nl> Date: Sun, 08 Jul 2001 13:29:07 +0200 From: Arjan Knepper Organization: JAK++ Software Development B.V. X-Mailer: Mozilla 4.76 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Gabriel Ambuehl Cc: freebsd-questions@freebsd.org Subject: Re: Passing data in C++ via stdin without waiting for the new process to complete References: <114577608557.20010708130014@buz.ch> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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