Manpages

名 前

siginterrupt − シ グ ナ ル で シ ス テ ム コ ー ル に 割 り 込 む こ と を 許 す

書 式

#include <signal.h>

int siginterrupt(int sig, int flag);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

siginterrupt():

_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* glibc 2.12 以 降 : */ _POSIX_C_SOURCE >= 200809L

説 明

siginterrupt() 関 数 は 、 シ ス テ ム コ ー ル が シ グ ナ ル sig に よ っ て 割 り 込 ま れ た 後 、 再 実 行 の 際 の 振 る 舞 い を 変 更 す る 。 flag 引 き 数 が 偽 (0) な ら ば 、 シ ス テ ム コ ー ル が 指 定 し た シ グ ナ ル sig に よ っ て 割 り 込 ま れ た 後 に 、 そ の シ ス テ ム コ ー ル は 再 実 行 さ れ る 。 こ れ は Linux に お い て デ フ ォ ル ト の 動 作 で あ る 。

flag 引 き 数 が 真 (1) で デ ー タ の 転 送 が 全 く 行 な わ れ て い な い な ら ば 、 シ グ ナ ル sig で シ ス テ ム コ ー ル は 中 断 さ れ て 、 −1 が 返 さ れ 、 errnoEINTR が 設 定 さ れ る 。

flag 引 き 数 が 真 (1) で デ ー タ の 転 送 が 開 始 さ れ て い れ ば 、 シ ス テ ム コ ー ル は 中 断 さ れ 、 そ れ ま で に 実 際 に 転 送 さ れ た デ ー タ の 量 が 返 さ れ る 。

返 り 値

siginterrupt() 関 数 は 成 功 し た 場 合 0 を 返 す 。 シ グ ナ ル 番 号 sig が 不 正 な 場 合 、 −1 を 返 し 、 errno に エ ラ ー の 原 因 を 示 す 値 を 設 定 す る 。

エ ラ ー

EINVAL 指 定 し た シ グ ナ ル 番 号 が 不 正 で あ る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )

siginterrupt() 関 数 は 保 護 さ れ て い な い グ ロ ー バ ル 変 数 を 使 用 し て い る の で 、 ス レ ッ ド セ ー フ で は な い 。

準 拠

4.3BSD, POSIX.1−2001. POSIX.1−2008 は 、 siginterrupt() を 廃 止 予 定 と し て い る 。 代 わ り に 、 sigaction(2)SA_RESTART フ ラ グ を 指 定 し て 使 う こ と を 推 奨 し て い る 。

関 連 項 目

signal(2)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。