Sponsored Content
Full Discussion: C - WEXITSTATUS() question
Top Forums Programming C - WEXITSTATUS() question Post 302361945 by james2432 on Wednesday 14th of October 2009 12:53:49 PM
Old 10-14-2009
[SOLVED] C - WEXITSTATUS() question

I want to check if an application is still running under C. So far I've been using
Code:
int rc;
rc=WEXITSTATUS( [PID here] )

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 my code non-blocking without threads?

Last edited by james2432; 10-19-2009 at 10:40 AM..
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Well, im getting it, but i have ONE question

Hay everyone, i would like to take this opportunity to thank all of you who helped me make the decision to get a linux distro. As a newbie, Im defininately considering buying Mandrake Linux... I went to the site and phew..... 2300 applications, i think ill have a good time. But i do have a... (5 Replies)
Discussion started by: LolapaloL
5 Replies

2. UNIX for Dummies Questions & Answers

Next Question:

what is the function of swap in linux why i have to create apsolutely a particion for the swap when i install (i installed lnx4win mandrake and made an automat. disk particion and the install program one of my disk partitions that was 3gb devidet in 4 one native 700mb swap 600mb and the others i... (1 Reply)
Discussion started by: user666
1 Replies

3. UNIX for Dummies Questions & Answers

another question?

what happens if the script doesn't get Y,y,N, or n? Will it just loop back up and ask the question again? I tried to get mine to give me another response to tell me my input was invalid, but ran into problems with it. (8 Replies)
Discussion started by: wmosley2
8 Replies

4. UNIX for Dummies Questions & Answers

question?

Is there any way to use sed and count the number of alphabetic characters in a sentence? (4 Replies)
Discussion started by: brentdeback
4 Replies

5. Programming

Question on order of headers and WEXITSTATUS

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)
Discussion started by: frequency8
5 Replies

6. Programming

C++ little question

Hi, I am doing a C++ self-study and I got stuck with this problem. I want to have a code that asks the suer to enter two numbers and then it lists the numbers between these two numbers. It has also to print a message if these two numbers are equal. Here is what I wrote: #include <iostream>... (11 Replies)
Discussion started by: faizlo
11 Replies

7. Programming

help with WEXITSTATUS in C

when a execute this line printf("%d\n",WEXITSTATUS(status)); i get no output, whats could be the possible causes? ---------- Post updated at 09:29 PM ---------- Previous update was at 09:27 PM ---------- nvm i figured it out, u can delete this thread (0 Replies)
Discussion started by: omega666
0 Replies

8. Shell Programming and Scripting

wc question

I am new to unix. how to get only the no. of lines output from the wc -l command. Input: wc -l filename it gives <no.of lines> filename i need only the interger value. as <no.of lines> Thanks in advance (2 Replies)
Discussion started by: sanvel
2 Replies
SYSTEM(3)						     Linux Programmer's Manual							 SYSTEM(3)

NAME
system - execute a shell command SYNOPSIS
#include <stdlib.h> int system(const char *command); DESCRIPTION
system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored. RETURN VALUE
The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be executed, the exit status will be that of a command that does exit(127). If the value of command is NULL, system() returns nonzero if the shell is available, and zero if not. system() does not affect the wait status of any other children. CONFORMING TO
C89, C99, POSIX.1-2001. NOTES
If the _XOPEN_SOURCE feature test macro is defined, then the macros described in wait(2) (WEXITSTATUS(), etc.) are made available when including <stdlib.h>. As mentioned, system() ignores SIGINT and SIGQUIT. This may make programs that call it from a loop uninterruptible, unless they take care themselves to check the exit status of the child. E.g. while (something) { int ret = system("foo"); if (WIFSIGNALED(ret) && (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT)) break; } Do not use system() from a program with set-user-ID or set-group-ID privileges, because strange values for some environment variables might be used to subvert system integrity. Use the exec(3) family of functions instead, but not execlp(3) or execvp(3). system() will not, in fact, work properly from programs with set-user-ID or set-group-ID privileges on systems on which /bin/sh is bash version 2, since bash 2 drops privileges on startup. (Debian uses a modified bash which does not do this when invoked as sh.) In versions of glibc before 2.1.3, the check for the availability of /bin/sh was not actually performed if command was NULL; instead it was always assumed to be available, and system() always returned 1 in this case. Since glibc 2.1.3, this check is performed because, even though POSIX.1-2001 requires a conforming implementation to provide a shell, that shell may not be available or executable if the calling program has previously called chroot(2) (which is not specified by POSIX.1-2001). It is possible for the shell command to return 127, so that code is not a sure indication that the execve(2) call failed. SEE ALSO
sh(1), signal(2), wait(2), exec(3) COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. 2004-12-20 SYSTEM(3)
All times are GMT -4. The time now is 06:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy