안녕 얘들 아, 나는 유닉스에 익숙하지 않은 자신을 가르치려고 노력하고 사용하는 책 에서이 연습 문제에 걸쳐 왔어. 내 생각 엔 잘못된 입력이 전달되면 종료 프로그램이 단순히 exit 함수를 호출한다는 것입니다. 내가 올바른 길을 가고 있는지 알려주세요! 고마워요!소프트웨어 장애로 인해 프로그램이 종료 될 때 UNIX에서 어떤 프로세스가 수행됩니까?
0
A
답변
1
그건 프로그램을 종료하는 한 가지 방법입니다. 0이 아닌 숫자로 exit
을 호출하면 프로그램에 "정상적으로 오류 상태가 종료되었습니다"라는 메시지가 표시됩니다. 다른 방법이 있습니다. 누군가 kill
프로세스가 비정상적으로 종료됩니다. 프로그램이 segfault (매핑되지 않은 주소에 액세스)하면 SIGSEGV로 종료됩니다.
이렇게하면 "프로그램을 종료시키는 원인"에 대한 답변을 얻을 수 있습니다. 이는 "어떤 프로세스가 착수되었는지"에 대해 대답하지 않습니다. 아마도 "프로그램이 충돌 할 때 커널이 무엇을합니까?"라는 의미 일 것입니다. 나는 모든 세부적인 내용을 알지 못한다. 그러나 프로그램이 불법적 인 일을 할 때 시스템의 다른 부분의 메모리가 손상된 경우가 아니라면 (커널에 버그가 없으면) 프로그램을 실행하지 못하도록하고 사용중인 자원을 시스템에 리턴합니다.
관련 문제
- 1. UNIX에서 어떤 가변 터미널 설정이 수행됩니까?
- 2. 프로세스가 종료 될 때 기능을 수행합니까?
- 3. 다른 프로세스가 종료 될 때 감지 OSX
- 4. 프로세스가 강제 종료 될 때 프로세스 종료 코드
- 5. 응용 프로그램이 종료 될 때 감지하는 방법?
- 6. 응용 프로그램이 어떤 화면에서 종료 될 때 알릴 수있는 방법
- 7. 프로그램이 정상적으로 종료 될 때 어떤 신호를 보내야합니까?
- 8. 응용 프로그램이 종료 될 때 타이머가 실행됩니다.
- 9. Perl에서 백그라운드 프로세스가 종료 될 때 어떻게 알림을받을 수 있습니까?
- 10. 소유자 프로세스가 종료 될 때 DLL을 삭제할 수있는 방법은 무엇입니까?
- 11. Windows 및 Linux에서 프로세스가 종료 될 때 알림을 받으려면 어떻게합니까?
- 12. 브라우저 프로세스가 종료 될 때 javascript를 실행하는 방법은 무엇입니까?
- 13. 프로세스가 종료 될 때까지 기다리지 마십시오.
- 14. iPhone : 응용 프로그램이 종료 될 때 NSUserDefaults 값 유지
- 15. Windows에서 PyQt4 응용 프로그램이 종료 될 때 종료됩니다.
- 16. 응용 프로그램이 종료 될 때 Silverlight IsolatedStorage가 제거 되었습니까?
- 17. 백그라운드에서 응용 프로그램이 종료 될 때 정리를 수행하는 방법은 무엇입니까?
- 18. 프로그램이 종료 될 때까지 상호 작용할 기대하기
- 19. 종료 코드가있는 .NET 런타임의 내부 오류로 인해 프로세스가 종료되었습니다. 80131506
- 20. Java 프로그램이 갑자기 종료 될 때 어떤 작업을 수행 할 수 있습니까?
- 21. 프로세스가 생성 될 때 시스템 이벤트가 있습니까?
- 22. valgrind에서 실행중인 프로그램이 중단 될 때 스레드 스택 백 슬래시
- 23. 프로세스가 어떻게 종료 되었습니까?
- 24. StackOverflowException으로 인해 프로세스가 종료되었습니다.
- 25. 프로세스가 종료 될 때를 대비해 HSQLDB를 실행하는 스크립트를 작성하는 방법
- 26. pthread_detach는 pthread_join에서와 같이 자식 프로세스가 종료 될 때까지 대기합니까?
- 27. 가 자식 프로세스가 오류로 종료 될 수 있습니다 진정한
- 28. 자식 프로세스가 종료 될 때까지 subprocess.Popen이 대기하지 않는 이유는 무엇입니까?
- 29. C++ 코드가 C++/CLI에서 호출 될 때 마샬링은 어떻게 수행됩니까?
- 30. 그리기 및 응용 프로그램이 종료 될 때 C#에서 ObjectDisposedException을 방지하는 방법
귀하의 회신에 조이 감사합니다! 그건 내 질문에 많은 도움이되고 올바른 방향으로 나를 지적했다. 또 하나의 질문 - 프로세스가 사용자/OS 또는 SIGSEGV에 의해 종료되는 경우 exit()가 전혀 호출되지 않습니까? 감사. – Drizzy
@ user354822 : 아니요, 호출되지 않았습니다. 'exit()'는 userland 프로그램에 의해 호출되는 시스템 호출이라는 것을 기억하십시오. 그 프로그램이 더 이상 존재하지 않으면 어떻게 exit()를 호출 할 수 있습니까? 또한'atexit()'매뉴얼 페이지는 "시그널 전달 때문에 프로세스가 비정상적으로 종료된다"(SIGSEGV (segmentation fault), SIGTERM (kill), SIGKILL (kill - 9) 등). –