Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Is there a way to check if process is 64 bit or 32 bit?
- int is64bit = proc->kp_proc.p_flags & P_LP64;
- static int
- B_get_process_info(pid_t pid, struct kinfo_proc *kp)
- {
- size_t bufsize = 0;
- size_t orig_bufsize = 0;
- int retry_count = 0;
- int local_error = 0;
- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, 0 };
- mib[3] = pid;
- orig_bufsize = bufsize = sizeof(struct kinfo_proc);
- for (retry_count = 0; ; retry_count++) {
- local_error = 0;
- bufsize = orig_bufsize;
- if ((local_error = sysctl(mib, 4, kp, &bufsize, NULL, 0)) < 0) {
- if (retry_count < 1000) {
- sleep(1);
- continue;
- }
- return local_error;
- } else if (local_error == 0) {
- break;
- }
- sleep(1);
- }
- return local_error;
- }
Add Comment
Please, Sign In to add comment