2014-05-14 1 views
3

나는 C++ 프로그램을 작성했고 그놈 터미널에서 실행 중이다 (나는 우분투에있다). Ctrl + Z를 누르면 프로세스가 일시 중단됩니다. 나중에 동일한 터미널에서 %을 실행하면 실행이 다시 시작됩니다.TSTP (polite pause)는 Linux의 C++ 프로그램과 어떻게 상호 작용합니까?

내가 읽은 것으로부터 Ctrl + Z는 TSTP 신호를 프로세스에 보내고 실행을 중지하도록 지시합니다. 그러나 TSTP는 프로세스가 중지 될 때까지 계속 허용된다는 점에서 예의입니다. 내 C++ 프로그램 코드에서는 TSTP 신호를 명시 적으로 처리하지 않았습니다. 그래서, 내 질문에, 내 C + + 코드 내에서 TSTP 신호에도 불구하고 계속 실행됩니다 무엇입니까? 예를 들어 파일 스트림을 열어두면 닫을 때까지 기다릴 수 있습니까? 나는 전체적인 대답을 기대한다. 너무 깊지도 않고 모든 세부 사항을 다루지도 않는다. 나는 이것이 어떻게 일어나는지에 대한 아이디어를 원한다.

답변

3

SIGTSTP 처리기가 실행되는 동안 프로그램이 계속 실행됩니다. 하나를 설정하지 않았으므로 프로세스를 중지하기위한 기본 신호 처리 동작을 얻습니다.

프로세스가 중지 된 동안에는 실행 예약이되지 않습니다. 파일은 닫히지 않으며 파일이 닫힐 때까지 지연되지 않습니다 (신호 처리기에서 완료되지 않은 경우).

:이 핸들러가 일부 작업을 수행하기 위해 설치 될 수있는 방법에 도움이되는 설명을 가지고 다음 기본 정지 동작을 가지고있는 것처럼

이 웹 사이트는 보인다

관련 문제