Closed exgs closed 3 years ago
^\
일떄 리턴 값 다른건 수정했는데,
./gnl
이렇게 폴더 접근하거나 execve
실패해서 오류 발생하는 상황에서 g_status
를 제대로 못가져오는 문제가 있음
#bash
bash-3.2$ ./gnl
bash: ./gnl: is a directory
bash-3.2$ echo $?
126
# minishell
minishell$ ./gnl
bash: ./gnl: Is a directory
minishell$ echo $?
0
확인 중~
@kohyounghwan 형이 말한 부분 해결했으니, 다시 PR 올릴께 @kohyounghwan @PennyBlack2008
issue #68 문제를 해결함. 다만 해결하는 과정에서 알게된 것은
waitpid(pid, &g_status, 0)
에서 g_status으로 종료조건을 스스로 가져오기때문에 g_status 값은 알아서 배정된다고 이해하고 있었지만, 그러나 ^D. ^\, ^C 로 종료시에 g_status 는 0 값을 가졌다. 그래서 signal.c 에서 g_status를 수정해도, 코드의 실행 순서상 g_status가 0으로 덮혀졌다. 따라서ft_execve
함수에서waitpid(pid, &g_status, 0)
을waitpid(pid, NULL, 0)
로 바꿔주었다. issue #68 은 해결되었으나, 다른 부분에서 문제가 생길 수 있는 지, 다른 사람들의 확인이 필요함!