다음 코드가 있습니다.fork()에서 execvp의 에러를 얻는 방법?
내 질문은 status
변수에 코드
int main() {
....
if ((uproc.pid = fork()) == -1) {
return -1;
}
if (uproc.pid == 0) {
/* child */
const char *argv[3];
int i = 0;
argv[i++] = "/bin/sh";
argv[i++] = "/my/script.sh";
argv[i++] = NULL;
execvp(argv[0], (char **) argv);
exit(ESRCH);
} else if (uproc.pid < 0)
return -1;
/* parent */
int status;
while (wait(&status) != uproc.pid) {
DD(DEBUG,"waiting for child to exit");
}
// If /my/script.sh exit accidentally in some place with error.
// can I catch this error right here?
......
}
'wait' 함수를 사용하면'status' 변수에 들어갑니다. –
내 질문에 대한 응답이 될 수 있습니다 – MOHAMED
상태는 항상 0입니다. 오류가없는 경우 및 스크립트에 오류가있는 경우를 대비하여 – MOHAMED