从进程ID获取CPU信息

2024-01-26

如果有人可以please帮助我,那就太好了:)

这似乎是一件艰难的事。从进程 ID 开始,我需要能够获取:

  1. 该进程占用了多少 CPU(%)
  2. 进程使用CPU多长时间

这需要用 Cocoa/Objective-C 或 C 编写。它还需要通过 Snow Leopard 在 Tiger 上工作。

Thanks!


一个粗略的方法是生成一个popen命令并获取一些输出ps.

即像这样:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void get_process_info(int pid) {
  char ps_cmd[256];
  sprintf(ps_cmd, "ps -O %%cpu -p %d", pid); // see man page for ps
  FILE *fp = popen(ps_cmd, "r"); 
  if (fp) {
    char line[4096];
    while (line == fgets(line, 4096, fp)) {
      if (atoi(line) == pid) {
        char dummy[256];
        char cpu[256];
        char time[256];

        //   PID  %CPU   TT  STAT      TIME COMMAND
        // 32324   0,0 s001  S+     0:00.00 bc

        sscanf(line, "%s %s %s %s %s", dummy, cpu, dummy, dummy, time);
        printf("%s %s\n", cpu, time); // you will need to parse these strings

        pclose(fp);
        return;
      }
    }
    pclose(fp);
  }
}

int main() {
  get_process_info(32324);
  return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从进程ID获取CPU信息 的相关文章

  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • UICollectionviewcell 更改背景

    如果我知道部分编号和项目编号 如何更改单元格中的背景 下面的代码显示了我如何尝试做到这一点 UICollectionViewCell collectionView UICollectionView collectionView cellFo
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • 如何在 Sublime 2 REPL Mac 中运行 Python 3

    我的问题如下 我安装了 sublime 2 和 sublime repl 插件 一切正常 我唯一需要的是更改在控制台内置的 sublimerepl 上运行的 python 版本 我的意思是 我有 python 2 7 5 预先安装了 mav
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • AngularsJS 将 JSON 数据 POST 到 Symfony2

    我想知道为什么这不起作用 我有一个 AngularJS 应用程序 它通过 AJAX 数据发送到 Symfony2 应用程序 如您所见 数据是在我的网络控制台中发送的
  • 如何导入 PowerShell 模块以供管道任务使用

    我正在 Azure DevOps 中创建构建管道 我有一个 PowerShell 任务 它调用文件内的脚本 它不是 内联 PowerShell 该脚本需要Az Accounts模块所以我添加了Import Module Az Account
  • html、div、css - 悬停操作和背景图像更改

    logo position relative width 100px height 18px float right background image url images logo def png background repeat no
  • Enum.Parse 无法转换字符串

    我正在尝试将一些 AppSettings 加载到对象中 设置如下所示
  • 禁用 angularJs 路由,routeprovider 已经消失

    我正在构建一个 laravel AngularJS 应用程序 其中 laravel 处理路由 由于安全问题 起初我尝试了一些 AngularJS 路由 所以我使用了路由提供者等 现在我正试图摆脱这个问题 AngularJS 不断将 part
  • 使用 Angular UI-Router 保留状态

    我有一个带有 ng view 的应用程序 可以向从联系人列表中选择的联系人发送电子邮件 当用户选择 收件人 时 它会显示另一个视图 页面 他可以在其中搜索 过滤等 发送电子邮件 和 联系人列表 是在 ng view 中加载的不同 html
  • 使用启动方法“spawn”的 Python 多处理不起作用

    我编写了一个 Python 类来并行绘制 pylot 它在默认启动方法是 fork 的 Linux 上工作得很好 但当我在 Windows 上尝试它时 我遇到了问题 可以使用生成启动方法在 Linux 上重现 请参阅下面的代码 我总是会遇到
  • C# 中不区分大小写的 XML 解析器

    我知道您对 XML 所做的一切都区分大小写 然而 现在我发现自己处于一种情况 如果我以某种方式使 xml 名称 属性识别不区分大小写 我正在编写的软件会产生更少的错误 不区分大小写的 XPath 将是上帝派来的 在 C 中是否有一种简单的方
  • 使用 Three.js 实现真实光照(阳光)?

    我正在尝试使用 Three js 创建一个小型第一人称游戏 但我在光照方面遇到了问题 基本上我想模拟太阳并让它旋转 将光线投射到所有物体上 我在用着THREE DirectionalLight目前 它只照亮一个方向 因此立方体的侧面保持黑色
  • 如何从 Maven 依赖项生成 JBoss jboss-deployment-struct

    我们有项目是使用 Maven 构建的 有很多依赖项可以通过设计良好的 pom 文件成功解决 我们需要生成计划部署在 JBoss7AS 上的 sar 模块 我们必须在 META INF jboss deployment struct xml
  • AWS Cognito 中的“访问令牌不包含 openid 范围”

    我正在前端应用程序上运行一个有效的 AWS Cognito 服务 它可以成功执行基本操作 登录 注销 注册等 现在我正在尝试通过后端API获取用户属性 例如 1 用户登录应用程序并获取JWT 2 JWT 正在发送到后端服务器 3 服务器必须
  • 允许参数中的数组

    我有以下 JSON name pizza ingredients name tomato amount 3 unit un name chesse amount 100 unit gr 我使用 POST 将此 JSON 传递到我的控制器 然
  • /langversion 的选项“7.3”无效;必须是 ISO-1、ISO-2、默认值或 1 到 6 范围内的整数

    我正在使用 Visual Studio 17 版本 15 8 5 我的项目目标为 NET Framework 4 8 并且我尝试设置要使用的 C 版本 通过 属性 窗口中的 生成 选项卡 C 7 3 这是可以从下拉列表 然而 构建项目报告失
  • 如何使 Tesseract 更快 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是一个很遥远的事情 但我必须问 我需要任何可以使 Tesseract OCR 引擎更快的想法 我正在处理由大约 2000 万页文本组
  • 替换某个索引中的字符[重复]

    这个问题在这里已经有答案了 如何替换字符串中某个索引处的字符 例如 我想从字符串中获取中间的字符 例如abc 如果该字符不等于用户指定的字符 那么我想替换它 也许是这样的 middle I don t know how to get the
  • 尝试解决 /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) 导致错误的解释器:/usr/local/opt/python/bin/python2.7

    Brew 升级后 我无法再运行任何 Ruby on Rails 应用程序 我收到此错误消息 dlopen Users ll rbenv versions 2 6 2 lib ruby 2 6 0 x86 64 darwin18 openss
  • 无法在 Windows 上启动本机消息传递主机,“COMSPEC 未设置”

    我有一个 Chrome 扩展 可以与本机消息传递主机通信以获取一些数据 问题是 当我通过快捷方式或任务栏中固定的快捷方式启动 Chrome 浏览器时 扩展程序无法连接到主机 我总是收到错误 无法启动本机消息传递主机 但是 如果我启动chro
  • 垄断检查玩家是否拥有一套

    players player1 currentpos 0 prevpos 0 startpos 0 balance 1500 player2 currentpos 0 prevpos 0 startpos 0 balance 1500 po
  • C# 中的 ToString() 需要什么?

    我在 c Sharp 中使用下面的代码 但是两个 WriteLine 语句都给出相同的结果 25 那么在 c Sharp 中转换 Tostring 需要什么 有什么特殊目的吗 using System using System Collec
  • 从进程ID获取CPU信息

    如果有人可以please帮助我 那就太好了 这似乎是一件艰难的事 从进程 ID 开始 我需要能够获取 该进程占用了多少 CPU 进程使用CPU多长时间 这需要用 Cocoa Objective C 或 C 编写 它还需要通过 Snow Le