名 前
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 が 返 さ れ 、 errno に EINTR が 設 定 さ れ る 。
flag 引 き 数 が 真 (1) で デ ー タ の 転 送 が 開 始 さ れ て い れ ば 、 シ ス テ ム コ ー ル は 中 断 さ れ 、 そ れ ま で に 実 際 に 転 送 さ れ た デ ー タ の 量 が 返 さ れ る 。
返 り 値
siginterrupt() 関 数 は 成 功 し た 場 合 0 を 返 す 。 シ グ ナ ル 番 号 sig が 不 正 な 場 合 、 −1 を 返 し 、 errno に エ ラ ー の 原 因 を 示 す 値 を 設 定 す る 。
エ ラ ー
EINVAL 指 定 し た シ グ ナ ル 番 号 が 不 正 で あ る 。 |
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )
siginterrupt() 関 数 は 保 護 さ れ て い な い グ ロ ー バ ル 変 数 を 使 用 し て い る の で 、 ス レ ッ ド セ ー フ で は な い 。
準 拠
4.3BSD, POSIX.1−2001. POSIX.1−2008 は 、 siginterrupt() を 廃 止 予 定 と し て い る 。 代 わ り に 、 sigaction(2) に SA_RESTART フ ラ グ を 指 定 し て 使 う こ と を 推 奨 し て い る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。