Manpages

名 前

sigpause − ブ ロ ッ ク さ れ た シ グ ナ ル を ア ト ミ ッ ク に 解 放 し て 割 り 込 み を 待 つ

書 式

#include <signal.h>

int sigpause(int sigmask); /* BSD (た だ し 「 備 考 」 を 参 照 ) */

int sigpause(int sig); /* System V / UNIX 95 */

説 明

こ の 関 数 を 使 わ な い こ と 。 代 わ り に sigsuspend(2) を 使 う こ と 。 関 数 sigpause() は シ グ ナ ル を 待 つ よ う に 設 計 さ れ て い る 。 こ の 関 数 は プ ロ セ ス の シ グ ナ ル マ ス ク (ブ ロ ッ ク さ れ た シ グ ナ ル の セ ッ ト ) を 変 更 し 、 シ グ ナ ル が 到 着 す る の を 待 つ 。 シ グ ナ ル が 到 着 す る と 、 シ グ ナ ル マ ス ク は 元 に 戻 さ れ る 。

返 り 値

sigpause() が 返 っ た 場 合 、 こ の 関 数 は シ グ ナ ル に よ っ て 割 り 込 ま れ て い る 。 返 り 値 は −1 で 、 errnoEINTR に 設 定 さ れ る 。

属 性

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

sigpause() 関 数 は ス レ ッ ド セ ー フ で あ る 。

準 拠

System V 版 の sigpause() は POSIX.1−2001 で 標 準 化 さ れ て い る 。

注 意

歴 史 こ の 関 数 の 古 典 的 な BSD 版 は 4.2BSD で 登 場 し た 。 こ の 関 数 は プ ロ セ ス の シ グ ナ ル マ ス ク を sigmask に 設 定 す る 。 UNIX 95 で は BSD 版 と 互 換 性 の な い System V 版 の こ の 関 数 が 標 準 化 さ れ た 。 UNIX 95 版 は 、 指 定 さ れ た シ グ ナ ル sig を プ ロ セ ス の シ グ ナ ル マ ス ク か ら 削 除 す る だ け で あ る 。 同 じ 名 前 で 互 換 性 の な い 2 つ の 関 数 が あ る と い う 不 幸 な 事 態 は 、 sigsuspend(2) 関 数 に よ っ て 解 消 さ れ た 。 こ の 関 数 は (int の 代 わ り に ) sigset_t * 引 き 数 を と る 。

Linux で の 注 意
Linux で は 、 こ の ル ー チ ン は Sparc (sparc64) ア ー キ テ ク チ ャ ー で の み シ ス テ ム コ ー ル と な っ て い る 。 機 能 検 査 マ ク ロ _BSD_SOURCE が 定 義 さ れ 、 _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _GNU_SOURCE, _SVID_SOURCE の い ず れ も 定 義 さ れ て い な い 場 合 、 glibc は BSD 版 を 使 う 。 そ れ 以 外 の 場 合 に は 、 System V 版 を 使 用 す る (宣 言 を 得 る た め に は _XOPEN_SOURCE が 定 義 さ れ て い な け れ ば な ら な い )。 glibc 2.19 以 降 で は 、 <signal.h> で は System V 版 だ け が 公 開 さ れ る 。 BSD 版 の sigpause() を 使 用 し て い た ア プ リ ケ ー シ ョ ン は sigsuspend(2) を 使 用 す る よ う に 修 正 す べ き で あ る 。

関 連 項 目

kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3), sigvec(3), feature_test_macros(7)

こ の 文 書 に つ い て

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