ソケットを確立したプロセスの pid を取得するにはどうすればよいですか。私はこのPDF リンクを調べました。彼はCalling fcntl() with F_SETOWN and the pid of our process に言及し、それがソケットの所有者であることをプロセスに伝えました。
1 に答える
0
fcntl() の man ページから
F_SETOWN (int) ファイル記述子 fd のイベントの SIGIO および SIGURG シグナルを受信するプロセス ID またはプロセス グループ ID を、arg で指定された ID に設定します。プロセス ID は正の値として指定されます。プロセス グループ ID が負の値として指定されています。最も一般的なのは、呼び出しプロセス自体が所有者として指定されている (つまり、arg が getpid(2) として指定されている) ことです。
getpid() を使用してプロセス ID を取得できます。そして、それを F_SETOWN に渡すと、SD が読み取り可能か書き込み可能かをプロセスに通知するように要求しています。
具体的には、タイトルの質問に対する答えは getpid() です。
于 2014-04-25T07:05:54.480 に答える