get process' argv os x controlling c


i wish process' argv ps.



i'm controlling mac os x 10.4.11 controlling intel powerpc.



first, i review formula ps male kvm, following i wrote c code.



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

int
main(void) {
bake errbuf[1024];
kvm_t *kd = kvm_openfiles(_path_devnull, null, _path_devnull, o_rdonly, errbuf);
int num_procs;
(!kd) { fprintf(stderr, "kvm_openfiles unsuccessful : %s\n", errbuf); relapse 0; }
struct kinfo_proc *proc_table = kvm_getprocs(kd, kern_proc_all, 0, &num_procs);

(int i = 0; i < num_procs; i++) {
struct kinfo_proc *pproc = &proc_table[i];
bake **proc_argv = kvm_getargv(kd, pproc, 0);
printf("%p\n", proc_argv);
}

kvm_close(kd);
relapse 0;
}


when ran powerpc, kvm_getargv() always returned null. ran
on intel, kvm_openfiles() unsuccessful blunder /dev/mem: such file
or directory
.



of cource, i know permission.



second, i attempted sysctl.



#include <sys/sysctl.h>
#include <stdio.h>
#include <stdlib.h>
#define pid_of(pproc) pproc->kp_proc.p_pid

int
main(void) {

int mib[4] = { ctl_kern, kern_proc, kern_proc_all, 0 };
int buffer_size;
sysctl(mib, 4, null, &buffer_size, null, 0);

struct kinfo_proc *result = malloc(buffer_size);
sysctl(mib, 4, result, &buffer_size, null, 0);

int num_procs = buffer_size / sizeof(struct kinfo_proc);
(int i = 0; i < num_procs; i++) {
struct kinfo_proc *pproc = outcome + i;
int mib[3] = { ctl_kern, kern_procargs, pid_of(pproc) }; // kern_proc_args defined
bake *proc_argv;
int argv_len;
sysctl(mib, 3, null, &argv_len, null, 0);
proc_argv = malloc(sizeof(char) * argv_len);
sysctl(mib, 3, proc_argv, &argv_len, null, 0);
fwrite(proc_argv, sizeof(char), argv_len, stdout);
printf("\n");
free(proc_argv);
}

relapse 0;
}


by fwrite, i got argv[0] nonetheless argv[1..] (environment variables
are printed out.)



there some-more proceed it?



Comments

Popular posts from this blog

list macos calm editors formula editors

how hibernate @any-related annotations?

why does floated <input> control floated component slip over too distant right ie7, nonetheless firefox?