編集はさておき、実際の質問から、私は
sudo netstat -tlpn
を使用していると思います(ポート/アドレスを解決しませ、TCPポートでリッスンしているプロセスを示している)
おそらくそれを組み合わせますgrepのビットで:
sudo netstat -tlpn | grep :7761
ポート:7761が聴かれている場所を見つけるには?
popen
を使用できます。
popenを使用すると、プロセスの出力が非同期的に受信されるという利点があります(サブプロセスが完了するのを待たずに応答が出力の最初の行にある場合は処理を停止できます;単にpclose
とサブプロセスSIGPIPE
で死ぬ)
直Standards Documentationからサンプル:
次の例では、取得するためにコマンドls *
を実行するpopen()
とpclose()
の使用方法を示しカレントディレクトリ内のファイルのリスト:
#include <stdio.h>
...
FILE *fp;
int status;
char path[PATH_MAX];
fp = popen("ls *", "r");
if (fp == NULL)
/* Handle error */;
while (fgets(path, PATH_MAX, fp) != NULL)
printf("%s", path);
status = pclose(fp);
if (status == -1) {
/* Error reported by pclose() */
...
} else {
/* Use macros described under wait() to inspect `status' in order
to determine success/failure of command executed by popen() */
...
}
は、私が実行しようとしている – sehe
bashコマンドを起動しようとしているあなたが実際にはないことは明らかであるように再フレージング問題を検討し、実際には(C++から)特定のポートでリスニングプロセスを見つけたいですbashコマンド。ポートを聞いているサービスを見つけられない –
これをクリアしてくれてありがとう、 – sehe