我正在研究一個項目,其中我需要知道調用系統調用的可執行文件的當前工作目錄。我認爲這將是可能的,因爲一些系統調用如open
將利用該信息。在內核代碼中獲取當前工作目錄
請問我可以如何獲取字符串中的當前工作目錄路徑?
我正在研究一個項目,其中我需要知道調用系統調用的可執行文件的當前工作目錄。我認爲這將是可能的,因爲一些系統調用如open
將利用該信息。在內核代碼中獲取當前工作目錄
請問我可以如何獲取字符串中的當前工作目錄路徑?
您可以看看如何實現getcwd
系統調用來了解如何執行此操作。
即系統調用是在fs/dcache.c
並調用:
get_fs_root_and_pwd(current->fs, &root, &pwd);
root
和pwd
是struct path
變量,
該函數被定義爲在include/linux/fs_struct.h
一個內聯函數,其中還包含:
static inline void get_fs_pwd(struct fs_struct *fs, struct path *pwd)
這似乎是你在之後。
OK是不是有沒有比這更簡單的東西,比如一個簡單的函數調用,它可以將當前工作目錄寫入字符串? – gaurav
這是一個簡單的函數調用來獲取'struct path'。我誤解了你的問題,而你實際上並沒有編寫內核代碼嗎? – Mat
不,我正在編寫內核代碼實際上我正在對fs/namei.c進行一些更改,所以我需要知道當前的工作目錄嗎?我想我可以調用一些sys_getcwd類型的調用,就像我可以使用sys_getpid來獲取pid。你能告訴我在哪裏可以看到出口是做什麼的,以便我可以使用該功能?或者我會用你的答案。 :) – gaurav