2016-06-07 3 views
-3

"Hi"또는 "Bye"로 인쇄하려면 터미널에 무엇을 입력해야합니까?linux에서 신호가 작동하는 방식 (c)?

this link에서

#include <stdio.h> 
#include <signal.h> 

void catcher1(int signum) 
{ 
    printf("/nHi"); 
    kill(getpid(),22); 
} 

void catch22(int signum) 
{ 
    printf("\nBye\n"); 
    exit(0); 
} 

main() 
{ 
    signal(SIGTERM, catcher1); 
    signal(22, catch22); 
    printf("\nLook & Listen\n"); 
    while(1); 
} 
+0

'Ctrl 키 + Z' -.>'bg' ->'ps' ->'죽일 - – MikeCAT

답변

2

"신호는 소프트웨어 인터럽트이다. 그들은 UNIX 및 리눅스처럼 유닉스와 유사한 운영체제에서 프로세스 간 통신에 사용된다. 신호는 벨 연구소 UNIX부터 사용되었습니다 POSIX 표준에 의해 형식적으로 정의됩니다. 신호가 프로세스로 전송되면 운영 체제는 프로세스 실행의 정상적인 흐름을 중단하고 통지를 전달합니다. 프로세스가 이전에 처리 방법을 등록한 경우 해당 루틴이 실행되는 특정 신호, 그렇지 않으면 시스템이 기본 신호를 실행합니다 핸들러. kill 명령을 사용하여 신호를 보낼 수 있습니다.는 "

따라서, 신호 단자 있지만 특정 문자를 입력하거나 신호를 보낼 입력을 명령 물건되지 않습니다

+0

시그널 (SIGTERM, catcher1)이 프로토 타입인가 아니면 함수 호출인가? –

+1

시그널 내부 함수를 호출하는 것처럼 보입니다. .h 파일 – jgr208

+3

@ILyaShapira -'남자 신호' – KevinDTimm

관련 문제