zcip: make it work on NOMMU (+ improve NOMMU support machinery)
fsck: fix bad English in a comment
This commit is contained in:
@ -40,11 +40,14 @@ pid_t spawn(char **argv)
|
||||
* (but don't run atexit() stuff, which would screw up parent.)
|
||||
*/
|
||||
failed = errno;
|
||||
_exit(0);
|
||||
_exit(111);
|
||||
}
|
||||
/* parent */
|
||||
/* Unfortunately, this is not reliable: vfork()
|
||||
* can be equivalent to fork() according to standards */
|
||||
/* Unfortunately, this is not reliable: according to standards
|
||||
* vfork() can be equivalent to fork() and we won't see value
|
||||
* of 'failed'.
|
||||
* Interested party can wait on pid and learn exit code.
|
||||
* If 111 - then it (most probably) failed to exec */
|
||||
if (failed) {
|
||||
errno = failed;
|
||||
return -1;
|
||||
|
@ -192,9 +192,16 @@ int wait4pid(int pid)
|
||||
{
|
||||
int status;
|
||||
|
||||
if (pid == -1 || waitpid(pid, &status, 0) == -1) return -1;
|
||||
if (WIFEXITED(status)) return WEXITSTATUS(status);
|
||||
if (WIFSIGNALED(status)) return WTERMSIG(status);
|
||||
if (pid <= 0) {
|
||||
errno = ECHILD;
|
||||
return -1;
|
||||
}
|
||||
if (waitpid(pid, &status, 0) == -1)
|
||||
return -1;
|
||||
if (WIFEXITED(status))
|
||||
return WEXITSTATUS(status);
|
||||
if (WIFSIGNALED(status))
|
||||
return WTERMSIG(status) + 10000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user