0
我有一個用戶級別的程序,將PID作爲輸入。 在繼續執行程序之前,我需要檢查我是否擁有該過程。因爲它是PID的進程在Linux中的所有權因爲它是PID
我是新來的linux,我想知道是否有辦法檢查我是否擁有這個過程..?
我有一個用戶級別的程序,將PID作爲輸入。 在繼續執行程序之前,我需要檢查我是否擁有該過程。因爲它是PID的進程在Linux中的所有權因爲它是PID
我是新來的linux,我想知道是否有辦法檢查我是否擁有這個過程..?
可能最簡單的方法是檢查僞目錄/proc/PID
的所有者。
您可以通過stat()
函數獲取文件或目錄的所有者。你可以用geteuid()
或getuid()
與你自己比較。
東西線沿線的:
char name[50];
struct stat st;
sprintf(name, "/proc/%d", pid);
stat(name, &st);
printf("uid: %d gid: %d\n", st.st_uid, st.st_gid);
但是,你應該重新考慮你爲什麼需要在首位。例如,如果你想發送一個信號(kill()
)這個過程,你不應該檢查你是否能夠。您只需嘗試一下,然後再考慮操作失敗的情況。