On Thu, 2007-10-18 at 17:34 -0700, Garrick Staples wrote: > On Thu, Oct 18, 2007 at 08:07:46PM -0400, Jerry Geis alleged: > > I have a C program on centos. When I call system("some_program &"); > > how do I get the PID of the some_program? > > > > I cant just list processes as there might be more than one some_program > > active. > > I need to know the one that I just started. Is each instance of "some_program" spawned from the same parent? If not, the PPID of the child can be used to differentiate between the children. > > You don't. At least not by using system(). > > Use fork() and exec() and you will have the child pid. Unfortunately (maybe), the environment that is provided by the system call (the command interpreter is invoked - /etc/profile, /etc/bashrc et al may come into play) is not established with fork and the exec* family of commands. Programming effort may be needed if this is important. Changing the invocation to some variation of "/bin/bash some_params some_program &" might do the trick when using the fork/exec combo. > <snip sig stuff> -- Bill