신호 및 신호 처리
2. 신호 의 출처: (1) 하드웨어 의 방식 으로 사용자 가 중간 에 일부 키 를 눌 렀 을 때, 예 를 들 어 Ctrl + c;하드웨어 이상 은 0, 잘못된 저장 공간 등 일부 신 호 를 발생 시 킵 니 다.(2) 소프트웨어 방식 프로 세 스 가 kill 또는 sigquue 함 수 를 호출 하여 알 람 이나 settime 에서 설정 한 타이머 가 시간 을 초과 할 때 SIGALRM 신 호 를 보 냅 니 다.
3. 신호 의 분류: 신뢰 할 수 있 는 신호 (실시 간 신호): 신호 33 ~ 64 번, 신 호 는 미결 신호 대기 열 에서 줄 을 서고 신 호 는 여러 번 신뢰 할 수 없 는 신 호 를 전달 할 수 있 습 니 다. 1 ~ 31 번: 줄 을 서 는 것 을 지원 하지 않 습 니 다.
4. 프로 세 스 가 신호 에 대한 응답: (1) 신호 캡 처 (2) 신 호 를 무시 합 니 다.(SIGKILL 과 SIGSTOP 신 호 를 무시 하거나 캡 처 하거나 차단 할 수 없 음 을 주의 하 십시오) (3) 시스템 기본 처리 (대부분의 기본 동작 은 종료)
5. 신호 처리: (1) signal (int signum, sigandler t handler);캡 처 (2) int sigaction (int signum, const struct sigaction * act, struct sigaction * oldact);신 호 를 받 을 때 프로 세 스 의 동작 을 검사 하거나 설정 합 니 다 (3) int pause (void).함 수 는 신호 가 잡 힐 때 까지 호출 프로 세 스 를 연결 합 니 다.(4)int kill(pid_t pid,int sig);프로 세 스 (5) int raise (int sig) 에 신 호 를 보 냅 니 다.호출 프로 세 스에 신호 보 내기 (6) sigqueue ();신호 보 내기 (7) alarm/getitimer/settimer 타이머 설정 (8) abort () 프로 세 스에 SIGABORT 신 호 를 보 내기
신호 에 대한 예:
#include
#include
#include
// 5S SIGQUIT KILL 1S “”XXXDHR“
// HELLO
void haha(int signum)
{
printf("hello");
}
void main()
{
pid_t pid=1;
//int signum=SIGQUIT;
pid=fork();
if(-1==pid)
{
return -1;
}
else if(0==pid)
{
signal(SIGQUIT,haha);
while(1)
{
printf("LCDHR");
sleep(1);
printf(" ");
}
}
else
while(1)
{
printf("yuio");
sleep(5);
kill(pid,SIGQUIT);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.