2013-04-27 47 views
0

我正在尋找一種方法來獲取具有其路徑的進程的當前PID。C++ Linux:從其路徑處理PID

例如我知道路徑firefox/usr/bin/firefox,我已經啓動了它,並且我想在C++中找到它的PID。

我該怎麼做?

+0

/proc//exe是一個鏈接到二進制文件。您可以瀏覽每個進程ID並搜索鏈接指向您感興趣的可執行文件的地方。 – 2013-04-27 17:55:42

+0

請注意,firefox和多個其他Linux/Unix命令允許多個調用,因此搜索可執行文件路徑可能會呈現多個結果,並且你可能不會隔離你實際上的那個。 – tink 2013-04-27 19:20:40

+0

@VaughnCato對不起,這是我需要的相反。 – ZedTuX 2013-04-28 07:51:00

回答

1

看看'pgrep'程序。來源是在這裏,我認爲:http://procps.sourceforge.net/

+0

非常感謝你,我會檢查一個! – ZedTuX 2013-04-28 07:51:31

+0

我有一個鏈接步驟的問題。我試圖使用'get_proc_stats'方法(使用庫而不是我自己的代碼做另一個步驟),但我去了以下錯誤:「未定義的引用\'get_proc_stats'」。我正在編譯「pkg-config --cflags --libs libprocps」。其他方法,如'openproc'或'closeproc'我沒有問題。 – ZedTuX 2013-04-28 10:46:54

+0

我在git repo中推入了一個連接失敗的示例:https://github.com/zedtux/test_libprocps – ZedTuX 2013-04-28 11:45:53