iphone获取当前运行进程列表遇到一个问题

本文介绍如何通过调用 sys/sysctl.h 来获取系统内核中的进程列表。具体展示了设置 mib 数组来指向内核的 KERN_PROC_ALL 参数以获取所有正在运行的进程,并说明了如何通过 size 参数来确定所需缓冲区的大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过调用 sys/sysctl.h 读取系统内核获取进程列表

 //指定名字参数,按照顺序第一个元素指定本请求定向到内核的哪个子系统,第二个及其后元素依次细化指定该系统的某个部分。
    //CTL_KERN,KERN_PROC,KERN_PROC_ALL 正在运行的所有进程
    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0};
    u_int miblen = 4;
    //值-结果参数:函数被调用时,size指向的值指定该缓冲区的大小;函数返回时,该值给出内核存放在该缓冲区中的数据量
    //如果这个缓冲不够大,函数就返回ENOMEM错误
    size_t size;
    //返回0,成功;返回-1,失败
    int st = sysctl(mib, miblen, NULL, &size, NULL, 0);


我走完这一步后返回-1,press是nil。是什么原因呢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值