siginterruptのヘルプ・マニュアル
日本語 英語
siginterrupt --help
man siginterrupt
SIGINTERRUPT(3) Linux Programmer’s Manual SIGINTERRUPT(3)
名前
siginterrupt - シグナルでシステム・コールに割り込むことを許す
書式
#include
int siginterrupt(int sig, int flag);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
siginterrupt(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
説明
siginterrupt() 関数は、システム・コールがシグナル sig によって割り込ま
れた後、再実行の際の振る舞いを変更する。 flag 引き数が偽 (0) ならば、シ
ステム・コールが指定したシグナル sig によって割り込まれた後に、そのシス
テム・コールは再実行される。これは Linux においてデフォルトの動作である
。一方、 signal(2) 関数で新しいシグナル・ハンドラーを指定した場合はデフ
ォルトでシステム・コールは中断される。
flag 引き数が真 (1) でデータの転送が全く行なわれていないならば、シグ ナ
ル sig でシステム・コールは中断されて、-1 が返され、 errno に EINTR が
設定される。
flag 引き数が真 (1) でデータの転送が開始されていれば、システム・コー ル
は中断され、それまでに実際に転送されたデータの量が返される。
返り値
siginterrupt() 関数は成功した場合 0 を返す。シグナル番号 sig が不正な場
合は -1 を返す。
エラー
EINVAL 指定したシグナル番号が不正である。
準拠
4.3BSD, POSIX.1-2001. POSIX.1-2008 は、 siginterrupt() を廃止予定と し
て いる。代わりに、 sigaction(2) に SA_RESTART フラグを指定して使うこと
を推奨している。
関連項目
signal(2)
2009-03-15 SIGINTERRUPT(3)
SIGINTERRUPT(3) Linux Programmer’s Manual SIGINTERRUPT(3)
NAME
siginterrupt - allow signals to interrupt system calls
SYNOPSIS
#include
int siginterrupt(int sig, int flag);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
siginterrupt(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
DESCRIPTION
The siginterrupt() function changes the restart behavior when a system
call is interrupted by the signal sig. If the flag argument is false
(0), then system calls will be restarted if interrupted by the speci-
fied signal sig. This is the default behavior in Linux. However, when
a new signal handler is specified with the signal(2) function, the sys-
tem call is interrupted by default.
If the flag argument is true (1) and no data has been transferred, then
a system call interrupted by the signal sig will return -1 and errno
will be set to EINTR.
If the flag argument is true (1) and data transfer has started, then
the system call will be interrupted and will return the actual amount
of data transferred.
RETURN VALUE
The siginterrupt() function returns 0 on success, or -1 if the signal
number sig is invalid.
ERRORS
EINVAL The specified signal number is invalid.
CONFORMING TO
4.3BSD, POSIX.1-2001. POSIX.1-2008 marks siginterrupt() as obsolete,
recommending the use of sigaction(2) with the SA_RESTART flag instead.
SEE ALSO
signal(2)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2009-03-15 SIGINTERRUPT(3)