Guest User

Untitled

a guest
Aug 16th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. Is there a way to check if process is 64 bit or 32 bit?
  2. int is64bit = proc->kp_proc.p_flags & P_LP64;
  3.  
  4. static int
  5. B_get_process_info(pid_t pid, struct kinfo_proc *kp)
  6. {
  7. size_t bufsize = 0;
  8. size_t orig_bufsize = 0;
  9. int retry_count = 0;
  10. int local_error = 0;
  11. int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, 0 };
  12.  
  13. mib[3] = pid;
  14. orig_bufsize = bufsize = sizeof(struct kinfo_proc);
  15.  
  16. for (retry_count = 0; ; retry_count++) {
  17. local_error = 0;
  18. bufsize = orig_bufsize;
  19. if ((local_error = sysctl(mib, 4, kp, &bufsize, NULL, 0)) < 0) {
  20. if (retry_count < 1000) {
  21. sleep(1);
  22. continue;
  23. }
  24. return local_error;
  25. } else if (local_error == 0) {
  26. break;
  27. }
  28. sleep(1);
  29. }
  30.  
  31. return local_error;
  32. }
Add Comment
Please, Sign In to add comment