Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!spool.mu.edu!howland.reston.ans.net!Germany.EU.net!main.Germany.EU.net!Dortmund.Germany.EU.net!interface-business.de!usenet
From: j@ida.interface-business.de (J Wunsch)
Newsgroups: comp.unix.bsd.misc,comp.unix.aix
Subject: Re: Executing process from child process
Date: 22 Jul 1996 09:15:27 GMT
Organization: interface business GmbH, Dresden
Lines: 38
Message-ID: <4svgrf$3gh@innocence.interface-business.de>
References: <31EEED83.1CB5@erinet.com>
Reply-To: joerg_wunsch@interface-business.de (Joerg Wunsch)
NNTP-Posting-Host: ida.interface-business.de
X-Newsreader: knews 0.9.6
X-Phone: +49-351-31809-14
X-Fax: +49-351-3361187
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.misc:1259 comp.unix.aix:81103
Gary Lynn Beckler <garyb@EriNet.com> wrote:
> Has anyone been successful executing a process using "execv" from
> a forked child process? I have been unsuccessful. Basically, I have
> client and server software running on separate machines. After the
> connection is made, the server process forks, and the spawned child
> process calls "execv" with the proper arguments. We are using 4.4BSD
> and IBM AIX 3.0.
>
> I would like to see sample code if possible. Thanks in advance.
You must do something fundamentally wrong.
#include <stdio.h>
#include <unistd.h>
int
main(void)
{
pid_t child;
char *args[] = {"ls", "-l", ".", (char *)0};
if ((child = fork()) == -1) {
fprintf(stderr, "Cannot fork.\n");
return 1;
} else if (child) {
execv("/bin/ls", args);
fprintf(stderr, "Cannot execute /bin/ls.\n");
return 1;
} else
printf("Hi, i'm the parent...\n");
return 0;
}
--
J"org Wunsch Unix support engineer
joerg_wunsch@interface-business.de http://www.interface-business.de/~j