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