Manpages

名 前

intro − シ ス テ ム コ ー ル の 説 明

説 明

マ ニ ュ ア ル の 2 章 で は Linux の シ ス テ ム コ ー ル に つ い て 説 明 し て い る 。 シ ス テ ム コ ー ル は Linux カ ー ネ ル へ の エ ン ト リ ー ポ イ ン ト で あ る 。 通 常 は 、 シ ス テ ム コ ー ル は 直 接 起 動 さ れ る 訳 で は な く 、 ほ と ん ど の シ ス テ ム コ ー ル に は 対 応 す る C ラ イ ブ ラ リ の ラ ッ パ ー 関 数 が あ り 、 そ の ラ ッ パ ー 関 数 が シ ス テ ム コ ー ル を 呼 び 出 す の に 必 要 な 処 理 を 実 行 す る 。 そ の た め 、 シ ス テ ム コ ー ル を 呼 び 出 す の は 通 常 の ラ イ ブ ラ リ 関 数 を 呼 び 出 す の と 同 じ よ う に 見 え る 。 多 く の 場 合 、 C ラ イ ブ ラ リ の ラ ッ パ ー 関 数 が 行 う の は 以 下 の こ と だ け で あ る 。

* 引 き 数 と 一 意 な シ ス テ ム コ ー ル 番 号 を カ ー ネ ル が 期 待 す る レ ジ ス タ ー に コ ピ ー す る

* カ ー ネ ル が シ ス テ ム コ ー ル の 実 際 の 処 理 を 行 う 時 点 で カ ー ネ ル モ ー ド に 入 る

* カ ー ネ ル が

CPU を ユ ー ザ ー モ ー ド に 返 し た 際 に シ ス テ ム コ ー ル が エ ラ ー 番 号 を 返 し た い れ ば errno を 設 定 す る し か し 、 ラ ッ パ ー 関 数 が こ れ 以 上 の こ と を 行 う 場 合 も い く つ か あ る 。 例 え ば 、 カ ー ネ ル モ ー ド に 入 る 前 に 引 き 数 に 対 す る 前 処 理 を 実 行 し た り 、 シ ス テ ム コ ー ル が 返 し た 値 に 対 す る 後 処 理 を 行 う な ど で あ る 。 こ の よ う な 場 合 、 セ ク シ ョ ン 2 の マ ニ ュ ア ル ペ ー ジ で は 、 基 本 的 に 、 C ラ イ ブ ラ リ API イ ン タ ー フ ェ ー ス (通 常 は GNU C ラ イ ブ ラ リ の も の ) と 生 の シ ス テ ム コ ー ル の 両 方 の 詳 細 を で き る だ け 説 明 し よ う と す る 。 ほ と ん ど の 場 合 、 メ イ ン と な る 「 説 明 」 で は C ラ イ ブ ラ リ の イ ン タ ー フ ェ ー ス に 焦 点 を あ て て 説 明 し 、 シ ス テ ム コ ー ル で の 差 分 に つ い て は 「 注 意 」 の セ ク シ ョ ン に 説 明 が あ る 。

Linux の シ ス テ ム コ ー ル の リ ス ト に つ い て は syscalls(2) を 参 照 の こ と 。

返 り 値

エ ラ ー の 場 合 、 ほ と ん ど の シ ス テ ム コ ー ル は 負 の エ ラ ー 番 号 を 返 す (具 体 的 に は errno(3) で 説 明 さ れ て い る 定 数 の い ず れ か を 負 に し た 値 を 返 す )。 C ラ イ ブ ラ リ の ラ ッ パ ー は 呼 び 出 し 元 か ら こ う し た 詳 細 を 隠 蔽 し て い る 。 シ ス テ ム コ ー ル が 負 の 値 を 返 し た 場 合 、 ラ ッ パ ー は 絶 対 値 を errno 変 数 に コ ピ ー し 、 ラ ッ パ ー の 返 り 値 と し て −1 を 返 す 。 成 功 時 に シ ス テ ム コ ー ル が 返 す 値 は シ ス テ ム コ ー ル に よ り 異 な る 。 多 く の シ ス テ ム コ ー ル は 成 功 時 に 0 を 返 す が 、 成 功 時 に 0 以 外 の 値 を 返 す シ ス テ ム コ ー ル も あ る 。 詳 細 は 個 々 の マ ニ ュ ア ル ペ ー ジ で 説 明 さ れ て い る 。 マ ニ ュ ア ル ペ ー ジ の 「 書 式 」 の 節 に 規 定 さ れ た ヘ ッ ダ ー フ ァ イ ル か ら 関 数 の 定 義 を 得 る た め に 、 プ ロ グ ラ マ が 機 能 検 査 マ ク ロ を 定 義 し な け れ ば な ら な い 場 合 が あ る (機 能 検 査 マ ク ロ の 定 義 が 必 要 な 場 合 、 こ れ ら の 機 能 検 査 マ ク ロ の 定 義 は 「 ど の 」 ヘ ッ ダ ー フ ァ イ ル の イ ン ク ル ー ド よ り も 前 で 行 わ れ な け れ ば な ら な い )。 こ の よ う な 場 合 に は 、 必 要 な マ ク ロ が マ ニ ュ ア ル ペ ー ジ で 説 明 さ れ て い る 。 機 能 検 査 マ ク ロ の さ ら な る 情 報 に つ い て は 、 feature_test_macros(7) を 参 照 の こ と 。

準 拠

こ の 章 の 関 数 が 準 拠 す る UNIX シ ス テ ム や 標 準 を 示 す の に い く つ か の 単 語 や 略 号 が 使 用 さ れ て い る 。 standards(7) を 参 照 の こ と 。

注 意

直 接 呼 び 出 す ほ と ん ど の 場 合 、 直 接 シ ス テ ム コ ー ル を 呼 び 出 す 必 要 は な い が 、 場 合 に よ っ て は 標 準 C ラ イ ブ ラ リ に 適 切 な 関 数 が 実 装 さ れ て い な い こ と も あ る 。 こ の よ う な 場 合 は 、 プ ロ グ ラ マ は syscall(2) を 使 っ て 、 自 分 で シ ス テ ム コ ー ル を 呼 び 出 さ な け れ ば な ら な い 。 過 去 に は 、 _syscall(2) マ ク ロ の 一 つ を 使 っ て シ ス テ ム コ ー ル の 呼 び 出 す こ と も で き た 。 著 者 と 著 作 権 著 者 と 著 作 権 に 関 し て は 各 マ ニ ュ ア ル ペ ー ジ の ソ ー ス の ヘ ッ ダ ー を 参 照 す る こ と 。 こ れ ら は ペ ー ジ ご と に 異 な る 可 能 性 が あ る こ と に 注 意 し て ほ し い 。

関 連 項 目

_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7), feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7), shm_overview(7), signal(7), socket(7), standards(7), svipc(7), symlink(7), time(7)

こ の 文 書 に つ い て

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