#include #include #include #include #include int main(void) { kvm_t* kptr = NULL; struct kinfo_proc* proc_ptr = NULL; int nprocs; int i; int count; char **vectors; fprintf(stderr, "my pid is %ld\n", getpid()); /* open the kernel */ kptr = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvmtest"); if (!kptr) { fprintf(stderr, "Error: kvm_open failed\n"); return 1; } /* find the process */ proc_ptr = kvm_getprocs(kptr, KERN_PROC_PID, getpid(), &nprocs); if (!proc_ptr || (nprocs != 1)) { fprintf(stderr, "Error: kvm_getprocs failed\n"); return 1; } /* get the environment vectors */ vectors = kvm_getenvv(kptr, proc_ptr, 0); if (!vectors) { fprintf(stderr, "Error: kvm_getenvv failed\n"); return 1; } /* get the argument vectors */ vectors = kvm_getargv(kptr, proc_ptr, 0); if (!vectors) { fprintf(stderr, "Error:kvm_getargv failed\n"); return 1; } /* close kernel */ kvm_close(kptr); return 0; }