2016-04-26 26 views
0

Cで「firefox」プロセスのPIDを取得する方法はありますか?実行中のfirefoxプロセスのPIDを取得

このコードでは、systemは成功を示す0だけを返します。 PIDを取得するにはどうしたらいいですか?

int x = system("pidof -s firefox"); 
printf("%d\n", x); 
+1

まあを参照してください。いいえ、706989はPythonに関するもので、Cではありません。 –

+3

'' pop''(http://linux.die.net/man/3/popen)を 'system'の代わりに使用してください。 – kaylum

+0

私はあなたの質問に読みやすいように言い直しました。しかし私はあなたのような人なので、あなたが同意しないなら、あなたはそれを元に戻すことができます。 – immibis

答えて

1

popenあなたが望むものである:それはオープンなプロセスからプロセスおよび出力ファイルストリームがfopenで開か同じように読むことが可能です開きます

FILE *f = popen("pgrep firefox", "r"); 
if (NULL == f) 
{ 
    perror("popen"); 
} 
else 
{ 
    char buffer[128]; 
    while (fgets(buffer, sizeof buffer, f)) 
    { 
     // do something with read line 
     int pid; 
     sscanf(buffer, "%d", &pid) 
    } 
    // close the process 
    pclose(f); 
} 

は、man popen