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. 获取所有正在运行的应用程序的列表
- 3. 如何使用Java获取Ubuntu上所有正在运行的进程的列表?
- 4. 所有正在运行的进程的列表
- 5. 使用NSWorkspace获取所有正在运行的进程
- 6. Node.js获取所有正在运行的进程
- 7. 如何列出所有正在运行的mongod进程?
- 8. 如何在mac上找到正在运行的java进程的进程ID?
- 9. 获取QNX中正在运行的用户进程列表
- 10. 获取正在运行的进程的列表,并杀死特定的进程
- 11. 如何从所有正在运行的应用程序中获取所有打开的NSWindow的列表?
- 12. 如何在Android进程中获取正在运行的线程?
- 13. 正在运行的进程列表
- 14. 获取正在运行的进程列表,获取活动进程(和它的应用程序)的Flex/AIR
- 15. 无法获得所有正在运行的Android进程
- 16. 获取正在运行的进程给定的进程句柄
- 17. 如何获取机器上运行的所有wcf服务的列表?
- 18. 批处理获取正在运行的所有进程的位置
- 19. 如何获取数据到正在运行的ruby进程?
- 20. 如何获取所有正在运行的活动android?
- 21. COM:如何获取所有正在运行的对象
- 22. 获取有关正在运行的进程的信息
- 23. 对所有正在运行的进程不显示进程MainWindowTitle
- 24. 列出VB.NET 2.0当前在windows上运行的所有进程
- 25. 如何显示正在运行的进程列表Python?
- 26. Windows正在运行进程列表perl
- 27. 如何使用UNIX-C/C++列出所有正在运行的进程
- 28. 如何查看iPhone上所有正在运行的线程
- 29. 通过正在运行的进程获取已使用库的列表(unix)
- 30. 是否可以使用applet获取正在运行的进程的列表?
'GetNextProcess让所有BSD processes.Have名单()'现在已经弃用10.9 – BergQuester 2014-02-26 19:23:12
我在10.9发布之前写了这个。 ;)我会更新它。 – 2014-03-04 05:08:15