Wireshark-users: Re: [Wireshark-users] Getting response values from wireshark ??

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Thu, 12 Oct 2006 02:29:34 -0700
Janssens, Kitty wrote:

The problem is that pclose returns 0 in either case. I've tried it with fork + execl too and there it's the same. The result
of execl is a negative number whether wireshark has started correctly or
not.

The result of execl() is a negative number only if the program didn't start *at all*.

Furthermore, if the program *does* start, execl() doesn't return - the process doing the execl() stops running the program that did the execl() and starts running the program that execl() is starting.

Therefore, execl() *always* returns -1 if it returns at all. If it succeeds, it doesn't return, as there's nothing to return to; it only returns if it fails.

If you want the exit status of the program run by execl(), you have to make a wait() or waitpid() call in the parent process to get the exit status of the forked process that ran execl().