4
A
回答
1
嘿,你可以做一個系統調用爲:
ps -eo pid,pcpu
,並解析結果。
您可以使用system()
在C進行此調用。
4
通常的做法是放入C並枚舉系統上的進程序列號(迴歸到Mac OS X之前的版本)。NSWorkspace具有API,但它們並不總是以您的方式工作期望。
請注意,經典進程(在PowerPC系統上)將使用此代碼枚舉(具有不同的進程序列號),即使它們全都共享一個進程ID。
void DoWithProcesses(void (^ callback)(pid_t)) {
ProcessSerialNumber psn = { 0, kNoProcess };
while (noErr == GetNextProcess(&psn)) {
pid_t pid;
if (noErr == GetProcessPID(&psn, &pid)) {
callback(pid);
}
}
}
然後,您可以調用該函數並傳遞一個塊,它將根據您想要的PID進行操作。
使用NSRunningApplication
和NSWorkspace
:
void DoWithProcesses(void (^ callback)(pid_t)) {
NSArray *runningApplications = [[NSWorkspace sharedWorkspace] runningApplications];
for (NSRunningApplication *app in runningApplications) {
pid_t pid = [app processIdentifier];
if (pid != ((pid_t)-1)) {
callback(pid);
}
}
}
3
您可以使用BSD的sysctl例程或ps命令看看https://stackoverflow.com/a/18821357/944634
相關問題
- 1. 編程讓所有正在運行的進程列表在Mac
- 2. NDK如何獲取所有進程運行的列表?
- 3. 獲取所有正在運行的應用程序的列表
- 4. 如何使用Java獲取正在運行的進程列表
- 5. 如何獲得所有正在運行的進程中的Qt
- 6. 如何使用Java獲取Ubuntu上所有正在運行的進程的列表?
- 7. 所有正在運行的進程的列表
- 8. Node.js獲取所有正在運行的進程
- 9. 使用NSWorkspace獲取所有正在運行的進程
- 10. 如何列出所有正在運行的mongod進程?
- 11. 獲取正在運行的進程的列表
- 12. 如何在mac上找到正在運行的java進程的進程ID?
- 13. 獲取QNX中正在運行的用戶進程列表
- 14. 獲取正在運行的進程的列表,並殺死特定的進程
- 15. 如何獲取在VB.NET中運行的進程名稱列表?
- 16. 如何從所有正在運行的應用程序中獲取所有打開的NSWindow的列表?
- 17. 獲取正在運行的進程'dimensions
- 18. 如何在Android進程中獲取正在運行的線程?
- 19. 我如何獲得所有正在運行的線程的列表
- 20. 如何將在Mac OS X上運行的所有進程記錄到文件
- 21. 正在運行的進程列表
- 22. 獲取所有播放聲音的列表(在Mac上)
- 23. 如何查看aix上正在運行的進程的所有線程堆棧?
- 24. 獲取正在運行的進程列表,獲取活動進程(和它的應用程序)的Flex/AIR
- 25. 如何獲取在Android設備上使用Selendroid運行的進程列表
- 26. 如何獲取正在運行的進程的指導
- 27. 如何獲取遠程計算機上正在運行的進程的描述?
- 28. Android上所有正在運行的進程的PID
- 29. Mac OSX - 獲取所有正在運行的應用程序列表以及內存使用情況
- 30. 如何獲取在Apache內運行的Perl腳本以顯示Apache服務器上所有正在運行的進程的列表?
'GetNextProcess讓所有BSD processes.Have名單()'現在已經棄用10.9 – BergQuester 2014-02-26 19:23:12
我在10.9發佈之前寫了這個。 ;)我會更新它。 – 2014-03-04 05:08:15