HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > s > set_tid_address - システムコールの説明

set_tid_address - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. 履歴
  6. 準拠
  7. 関連項目

名前

set_tid_address - スレッド ID へのポインタを設定する

書式

#include <linux/unistd.h>

long set_tid_address(int *tidptr);

説明

カーネルは各プロセスについて set_child_tidと clear_child_tidという 2 つの値を保持する。 これらはデフォルトでは NULL である。

set_child_tid

プロセスが CLONE_CHILD_SETTIDフラグを指定した  clone(2) によって開始された場合、 set_child_tidは child_tidptrに設定される。 これは  clone(2) のシステムコールの 5 番目の引き数である。

set_child_tidが設定された場合、一番最初に新しいプロセスが行うことは、 このアドレスに自身の PID を書き込むことである。

clear_child_tid

プロセスが CLONE_CHILD_CLEARTIDフラグを指定した  clone(2) によって開始された場合、 clear_child_tidは child_tidptrに設定される。 これは  clone(2) のシステムコールの 5 番目の引き数である。

システムコール set_tid_address()は呼び出し元プロセスの clear_child_tidの値を tidptrに設定する。

clear_child_tidが設定されているときにプロセスが終了すると、 そのプロセスは他のプロセスまたはスレッドとメモリを共有しているので、 このアドレスに 0 が書き込まれ、 futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0);の呼び出しが実行される (つまり、この futex で待っている 1 つのプロセスを起こす (wake))。 エラーは無視される。

返り値

set_tid_address()は現在のプロセスの PID を返す。

履歴

この呼び出しは Linux 2.5.48 以降で存在する。 ここで書かれた詳細は Linux 2.5.49 以降で有効である。

準拠

このシステムコールは Linux 独自である。

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする