pthread ID を取得するためのラッパー関数を実装するpthread_self()
必要がありますが、これを行うシステムコールを検索して見つけられませんでした。Stack O から別の投稿を読んでいます。clone()
スレッドの作成に使用されていることも知っています。またptrace()
、syscall をトレースすることもできますが、手でトレースする前に...誰かがどの syscall であるかを知ることができますか?
質問する
3974 次
4 に答える
1
syscall 0xe0, gettid()はどうですか?
gettid() は、呼び出し元のスレッド ID (TID) を返します。シングルスレッドプロセスでは、スレッド ID はプロセス ID (getpid(2) によって返される PID) と同じです。マルチスレッド プロセスでは、すべてのスレッドが同じ PID を持ちますが、各スレッドは一意の TID を持ちます。詳細については、clone(2) の CLONE_THREAD の説明を参照してください。
于 2013-10-13T21:06:59.573 に答える
1
glibc では、pthread_self()
システム コールは実行されませんがstruct pthread
、TSD セグメントにある へのポインタが返されます。
于 2013-10-14T13:31:16.913 に答える