Linux 신호 세트 연산 기능에 대한 자세한 설명

WBOY
풀어 주다: 2024-02-09 15:30:31
앞으로
663명이 탐색했습니다.

먼저 보류 중인 신호 세트가 무엇인지 살펴보겠습니다. 신호가 생성되어 목적지에 도달하는 과정을 신호 전달이라고 합니다. 신호 생성부터 전달까지의 중간 상태를 신호의 보류 상태라고 합니다. 보류 상태의 이유는 신호가 차단되었기 때문일 수 있습니다. 즉, 신호 마스크 워드(또는 차단된 신호 세트)의 해당 비트가 1로 설정되어 있기 때문일 수 있습니다. 차단 신호 세트와 보류 신호 세트는 모두 커널에 의해 유지됩니다. 전체 과정은 아래 그림에 나와 있습니다:

Linux 신호 세트 연산 기능에 대한 자세한 설명

때로는 특정 신호를 차단해야 하므로 차단 신호 세트를 수정해야 합니다. 그렇다면 차단 신호 세트를 어떻게 수정합니까? 시스템이 제공하는 한 가지 방법은 먼저 차단 신호 세트와 동일한 세트를 만든 다음 이를 사용하여 차단 신호 세트를 수정하는 것입니다.

시스템은 일련의 신호 세트 설정 기능을 제공합니다. 이러한 기능은 다음과 같습니다:

으아악

위 기능을 사용하여 신호 세트를 생성한 후 차단 신호 세트를 변경하는 방법은 무엇입니까? 시스템은 sigprocmask 기능이라는 또 다른 기능을 제공합니다. sigprocmask 기능은 신호를 차단하거나 신호를 차단 해제하는 데 사용할 수 있습니다. 그 핵심은 차단 신호 세트를 변경하기 위해 만든 신호 세트를 사용하는 것입니다.

함수 프로토타입:

으아악

반환 값:

성공: 0; 실패: -1, errno 설정

매개변수 설명:

set: 들어오는 매개변수는 비트맵입니다. 세트의 어떤 비트가 1인지는 현재 프로세스에 의해 차단된 신호를 나타냅니다.

oldset: 나가는 매개변수, 이전 신호 마스크 세트를 저장합니다. 이는 setitimer와 다소 유사합니다.

어떻게 매개변수 값:

현재 신호 마스크 단어가 마스크라고 가정

1.SIG_BLOCK: 이 값으로 어떻게 설정되면 차단해야 하는 신호를 나타냅니다. 마스크 = 마스크 세트

와 동일

2.SIG_UNBLOCK: 어떻게 설정되면 차단을 해제해야 하는 신호를 나타냅니다. 마스크와 동일 = 마스크 & ~세트

3.SIG_SETMASK: How가 이것으로 설정되면 set은 원래 마스크를 대체하는 데 사용되는 새 마스크 세트를 나타냅니다. 마스크 = 설정과 동일합니다. sigprocmask를 호출하여 여러 현재 신호의 차단을 해제하는 경우 sigprocmask가 반환되기 전에 최소한 하나의 신호가 전달됩니다.

대기 중인 신호 세트를 어떻게 읽나요? 시스템은 서명 기능을 제공합니다.

함수 프로토타입:

으아악

매개변수 설명:

발신 매개변수를 설정합니다.

반환 값:

반환 값: 성공: 0, 실패: -1, errno 설정

예: 모든 일반 신호의 보류 상태를 화면에 인쇄합니다.

으아악

위 내용은 Linux 신호 세트 연산 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lxlinux.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!