سؤال

I'm now studying proc file system. I now know that read_proc_t function is called when the proofs file is read, and so for write_proc_t function when the proofs file is written to. But I also find the file_operaitons* field in the definition of proc_dir_entry, and this example code (http://linux.die.net/lkmpg/x810.html).

So I'm confused that what would happen if I provide both implementations of read_proc_t function and the read function in file_operations structure? Which has the precedence over the other? Could one be overwritten by the other? Thanks very much.

هل كانت مفيدة؟

المحلول

When you register proc-entry, proc_register() checks if you specify proc_fops. If you don't, it will set default file operations for procfs. Default operations calls your proc_read and proc_write. So, if you specify proc_fops by yourself, proc_read and proc_write members will not be called.

In linux-3.10 there aren't such things as write_proc_t and read_proc_t. proc_dir_entry has no members read_proc and write_proc. Instead, only proc_fops is used.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top