相关疑难解决方法(0)

使用 C 在 OS X 中获取其他进程的 argv

我想获得其他进程的argv,例如ps。

我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10.4.11。

首先,我阅读了 ps 和 man kvm 的代码,然后编写了一些 C 代码。

#include <kvm.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysctl.h>
#include <paths.h>

int
main(void) {
    char errbuf[1024];
    kvm_t *kd = kvm_openfiles(_PATH_DEVNULL, NULL, _PATH_DEVNULL, O_RDONLY, errbuf);
    int num_procs;
    if (!kd) { fprintf(stderr, "kvm_openfiles failed : %s\n", errbuf); return 0; }
    struct kinfo_proc *proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, &num_procs);

    for (int i = 0; i < num_procs; i++) {
        struct kinfo_proc *pproc = &proc_table[i]; …
Run Code Online (Sandbox Code Playgroud)

c macos argv

5
推荐指数
1
解决办法
5785
查看次数

标签 统计

argv ×1

c ×1

macos ×1