3
我正在實現一個字符驅動程序。所以我正在註冊文件操作。當我註冊read
功能我提取minor
號這樣爲什麼打開調用兩個參數(struct inode *,struct file *)?
myread(struct file * file, char __user * ubuf, size_t lbuf, loff_t *offset)
{
int minor;
minor = MINOR(file->f_path.dentry->d_inode->f_pos->i_rdev);
.......
此規則將適用於open
通話了。
myopen(struct inode * inode, struct file * file)
struct file
定義有參考struct inode
。所以一個參數就足夠用於open
調用。
我的問題是:
- 爲什麼
open
有兩個參數? (或)爲什麼read
沒有struct inode *
的說法? - 要提取
read
呼叫中的次要號碼,我使用上述說明。爲了找到定義和頭文件,我花了1小時30分鐘。有沒有簡單的方法來找到結構的定義? - 有多少種方法可以找到
struct inode
到struct file
的參考文獻,最佳方法是什麼?
因爲內核約定是這樣的。改變它們需要大量的代碼重寫。 –