Scroll to navigation

sigsuspend(2) System Calls Manual sigsuspend(2)

NAVN

sigsuspend, rt_sigsuspend - vent på et signal

BIBLIOTEK

Standard C library (libc-lc)

SYNOPSIS

#include <signal.h>
int sigsuspend(const sigset_t *mask);

Feature Test Macro Requirements for glibc (se feature_test_macros(7)):

sigsuspend():


_POSIX_C_SOURCE

BESKRIVELSE

sigsuspend() erstatter midlertidigt signalmasken for den kaldende tråd med masken angivet af mask og suspenderer så tråden indtil levering af et signal hvis handling er at igangsætte en signalhåndtering eller afslutte en proces.

Hvis signalet afslutter processen, så returnerer sigsuspend() ikke. Hvis signalet fanges, så returnerer sigsuspend() efter signalhåndteringen returnerer, og signalmasken gendannes i tilstanden før kaldet til sigsuspend().

Det er ikke muligt at blokere SIGKILL eller SIGSTOP; angivelse af disse signaler i mask, har ingen effekt på trådens signalmaske.

RETURVÆRDI

sigsuspend() returnerer altid -1, med errno angivet for at indikere fejlen (normalt EINTR).

FEJL

mask peger mod hukommelse der ikke er en gyldig del af procesadresserummet.
Kaldet blev afbrudt af et signal; signal(7).

STANDARDER

POSIX.1-2024.

HISTORIK

POSIX.1-2001.

C-bibliotek/kerne-forskelle

Det oprindelige Linuxsystemkald blev navngivet sigsuspend(). Med tilføjelsen af realtids signaler i Linux 2.2 var 32-bit sigset_t-type med fast længde understøttet af det systemkald ikke længere passende for formålet. Et nyt systemkald rt_sigsuspend() blev derfor tilføjet for at understøtte en forstørret sigset_t-type. Det nye systemkald bruger et ektra argument, size_t sigsetsize, der angiver størrelsen i byte for signalsættet i mask. Dette argumnet er i øjeblikket krævet med værdien sizeof(sigset_t) (hvis ikke følger fejlen EINVAL). Glibc-omslagsfunktionen sigsuspend() skjuler disse detaljer for os, og kalder gennemsigtigt rt_sigsuspend() når kernen tilbyder denne.

NOTER

Normalt bruges sigsuspend() sammen med sigprocmask(2) for at forhindre levering af et signal under afviklingen af en kritisk kodesektion. Kalderen blokerer først signalerne med sigprocmask(2). Når den kritiske kode er færdig, så venter kalderen på signalerne ved at kalde sigsuspend() med signalmasken der blev returneret af sigprocmask(2) (i argumentet oldset).

Se sigsetops(3) for detaljer om manipulaton af signalsæt.

SE OGSÅ

kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7)

OVERSÆTTELSE

Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>

Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.

Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.

8. februar 2026 Linux man-pages 6.18