WEXITSTATUS Example
Example of how to use WEXITSTATUS <geshi lang="c">
- include <iostream>
void run(const char * cmd) {
printf("Executing command %s\n", cmd); int status = std::system(cmd); printf("raw status %d\n", status); if (status == -1) { printf("fork failed\n"); } else if (WIFEXITED(status)) { printf("terminated with exit status %d\n", WEXITSTATUS(status)); } else { printf("terminated abnormally\n"); printf("You can't use WEXITSTATUS here, cause if you did you would get %d\n", WEXITSTATUS(status)); } printf("\n");
}
int main(int argc, char *argv[]) {
printf("argc: %d\n", argc); if (argc > 1) { printf("prepare to die!\n"); return *(int*)(0); } run("/bin/true"); run("/bin/false"); run("/bin/maybe"); run("./a.out Oh no"); return 0;
} </geshi>
The output is:
argc: 1 Executing command /bin/true raw status 0 terminated with exit status 0 Executing command /bin/false raw status 256 terminated with exit status 1 Executing command /bin/maybe sh: /bin/maybe: No such file or directory raw status 32512 terminated with exit status 127 Executing command ./a.out Oh no argc: 3 prepare to die! raw status 139 terminated abnormally You can't use WEXITSTATUS here, cause if you did you would get 0