응용 프로그램에서 방금 종료를 알 수있는 방법은 무엇입니까? 신호 처리기를 사용할 수 있습니까?C/Linux에서 프로그램 종료를 감지하는 방법은 무엇입니까?
답변
atexit()
을 사용하십시오. 프로그램이 정상적으로 종료되면 함수를 호출합니다.
샘플 코드 :
#include <stdio.h>
#include <stdlib.h>
void funcall(void);
void fnExit1 (void)
{
printf ("Exit function \n");
}
int main()
{
atexit (fnExit1);
printf ("Main function start\n");
funcall();
printf ("Main function end\n");
return 0;
}
void funcall(void)
{
sleep(2);
exit(0);
}
출력 :
Main function start
Exit function
atexit()는 응용 프로그램의 모든 스레드가 종료 된 후에 실행됩니까? –
@LunarMushrooms 예 – sujin
당신은 --->
int raise (int sig)
을 시도하고 SIGTERM
또는 SIGKILL
가 발생할 때 처리 할 수 없습니다!
다른 프로세스에서 요청할 때뿐만 아니라 자체 종료를 포착하고 싶습니다. 예를 들어 Ctrl + \, Ctr + C 또는 어설 션, 크래시 등으로 처리해야하므로 SIGTERM 및 SIGKILL 만 처리해야하는 신호는 아닙니다. 모든 사건을 처리 할 수있는 단일 장소가 필요합니다. –
프로세스를 종료 할 때 호출 할 함수를 등록 할 수도 있습니다. man atexit
SIGINT, SIGKILL 및 SIGSEGV에 대한 신호 처리기를 설치할 수 있습니다. 시그널 핸들러에서는 나중에 시그널 핸들러에서 SIGINT, SIGKILL, SIGSEGV의 처리를 디폴트로 되돌릴 수 있도록 스택 덤프를 취할 수있다.
- 1. JDBC에서 Oracle 데이터베이스 종료를 감지하는 방법은 무엇입니까?
- 2. 클라이언트 및 서버 Java 프로그램. 전송 종료를 감지하는 방법
- 3. 커널 확장에서 응용 프로그램 종료를 감지하는 방법 Mac OS X
- 4. Visual Studio 종료를 올바르게 처리하는 방법은 무엇입니까?
- 5. C에서 DLL에서 프로세스 종료를 감지하는 방법
- 6. 응용 프로그램 시작이 실패했음을 감지하는 방법은 무엇입니까?
- 7. iOS에서 프로그램 방식으로 백라이트를 감지하는 방법은 무엇입니까?
- 8. 응용 프로그램 충돌을 감지하는 방법은 무엇입니까?
- 9. JFrame의 종료를 취소하는 방법은 무엇입니까?
- 10. C#에서 프로그램 실행 및 종료를 알리는 방법은 무엇입니까?
- 11. Delphi가 응용 프로그램 종료를 막습니다.
- 12. 프로그램 도움말! 사용자 조회수가 프로그램 종료를 입력하면
- 13. C# NET에서 응용 프로그램 종료를 감지 하시겠습니까?
- 14. Win32에서 디렉토리를 감지하는 방법은 무엇입니까?
- 15. KeyboardInterrupt에서 프로세스 종료를 막는 방법은 무엇입니까?
- 16. Java 애플릿의 종료를 처리하는 적절한 방법은 무엇입니까?
- 17. MQTT 클라이언트의 시간 종료를 설정하는 방법은 무엇입니까?
- 18. Eclipse pydev에서 실행 종료를 잡는 방법은 무엇입니까?
- 19. 주류 웹 브라우저의 종료를 확인하는 방법은 무엇입니까?
- 20. TaskManager의 종료를 피하는 알림을 만드는 방법은 무엇입니까?
- 21. Tomcat이 종료를 수신하도록 구성되었는지 확인하는 방법은 무엇입니까?
- 22. 안개가있는 AWS 서버 종료를 확인하는 방법은 무엇입니까?
- 23. WINAPI를 사용하여 시스템 종료를 추적하는 방법은 무엇입니까?
- 24. Android에서 애플리케이션 자동 종료를 해결하는 방법은 무엇입니까?
- 25. 파일을 감지하는 방법은 무엇입니까?
- 26. '입력'문자를 감지하는 방법은 무엇입니까?
- 27. 주파수를 감지하는 방법은 무엇입니까?
- 28. CATiledLayer를 감지하는 방법은 무엇입니까?
- 29. 응용 프로그램 관리에서 강제 종료를 비활성화하거나 제거하십시오.
- 30. Chrome 확장 프로그램 콘텐츠에서 페이지 언어/로케일을 감지하는 방법은 무엇입니까?
예, 그것은 KILL 신호에 의해 종료하지 않는 이상. 매뉴얼에서 "signal"을 보자. ('man signal') – BRFennPocock
이식성이 좋으므로 대신'sigaction'을 사용해야한다. –