2014-10-14 2 views
0

В простой Linux код драйвера устройства, я нашел следующую функцию:Пытаясь понять простую Open() в драйвере Linux

static int my_open(struct inode *i, struct file *f) 
{ 
    printk(KERN_INFO "Driver: open()\n"); 
    return 0; 
} 

Это берется из here.

Может кто-нибудь объяснить мне, что мы подразумеваем под inode здесь и почему эта функция static?

ответ

1

Функция static, поскольку писатель не хотел, чтобы функция была видна снаружи кода водителя, то есть вы не можете напрямую связать ее. Вероятно, это может быть вызвано некоторой функцией init(), которая помещает указатель на функцию в «методы», если я помню, как выглядят драйверы Linux.

Значение struct inode описывает файл или каталог на диске.

Смежные вопросы