I want to check if an application is still running under C. So far I've been using
int rc;
rc=WEXITSTATUS( )
if(rc > 0)
{
//then I exited
}
I was wondering seeing as WEXITSTATUS in man pages is close to the WAIT() if it was thread blocking and if it was how would I go about making... (4 Replies)
In one of the Unix Programming FAQ's they have the following headers in the program to catch SIGCHLD
#include <sys/types.h> /* include this before any other sys headers */
#include <sys/wait.h> /* header for waitpid() and various macros */
#include <signal.h> /* header for signal... (5 Replies)
wait.h(3HEAD) Headers wait.h(3HEAD)NAME
wait.h, wait - wait status
SYNOPSIS
#include <sys/wait.h>
DESCRIPTION
When a process waits for status from its children using either the wait(3C) or waitpid(3C) function, the status returned can be evaluated
with the following macros, defined in <sys/wait.h>. These macros evaluate to integral expressions. The stat argument to these macros is the
integer value returned from wait() or waitpid().
WCOREDUMP(stat) If the value of WIFSIGNALED (stat) is non-zero, this macro evaluates to a non-zero value if a core image of
the terminated child was created.
WEXITSTATUS(stat) If the value of WIFEXITED(stat) is non-zero, this macro evaluates to the exit code that the child process
passed to _exit() (see exit(2)) or exit(3C), or the value that the child process returned from main.
WIFCONTINUED(stat) Evaluates to a non-zero value if status was returned for a child process that has continued.
WIFEXITED(stat) Evaluates to a non-zero value if status was returned for a child process that terminated normally.
WIFSIGNALED(stat) Evaluates to a non-zero value if status was returned for a child process that terminated due to the receipt
of a signal.
WIFSTOPPED(stat) Evaluates to a non-zero value if status was returned for a child process that is currently stopped.
WSTOPSIG(stat) If the value of WIFSTOPPED(stat) is non-zero, this macro evaluates to the number of the signal that caused
the child process to stop.
WTERMSIG(stat) If the value of WIFSIGNALED(stat) is non-zero, this macro evaluates to the number of the signal that
caused the termination of the child process.
The <sys/wait.h> header defines the symbolic constants listed below for use with waitpid(3C).
WNOHANG Do not hang if no status is available; return immediately.
WUNTRACED Report status of stopped child process.
The symbolic constants listed below are defined as possible values for the options argument to waitid(2).
WEXITED Wait for processes that have exited.
WSTOPPED Status is returned for any child that has stopped upon receipt of a signal.
WCONTINUED Status is returned for any child that was stopped and has been continued.
WNOHANG Return immediately if there are no children to wait for.
WNOWAIT Keep the process whose status is returned in infop in a waitable state.
The type idtype_t is defined as an enumeration type whose possible values include the following:
P_ALL
P_PID
P_PGID
The id_t and pid_t types are defined as described in <sys/types.h>.
The siginfo_t type is defined as described in <signal.h>.
The rusage structure is defined as described in <sys/resource.h>.
Inclusion of the <sys/wait.h> header can also make visible all symbols from <signal.h> and <sys/resource.h>.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO exit(2), waitid(2), exit(3C), wait(3C), waitpid(3C),attributes(5), standards(5)SunOS 5.10 10 Sep 2004 wait.h(3HEAD)