遵循教程:
http://derekmolloy.ie/writing-a-linux-kernel-module-part-2-a-character-device/
在ubuntu中执行后:
sudo apt-get update
apt-cache search linux-headers-$(uname -r)
sudo apt-get install linux-headers-4.8.0-36-generic
cd /usr/src/linux-headers-4.8.0-36
为什么ubuntu内核(Vmware)在/usr/include/linux/fs.h文件中没有file_operations结构?
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
.
.
.
};
答案 0 :(得分:0)
这些标头适用于用户空间程序。为什么你期望内核中的fs.h文件在那里?你最初在做什么?
如果检查内核源代码树,您会看到它在usr / include / linux中包含一组单独的头文件。
您正在寻找的可能包名为-devel(或-dev)。 apt-file search应该能够告诉你,或者最好是手动的,无论你应该在这里做什么。
编辑:
本教程的作者在内核源代码树中包含/ linux / fs.h文件。
该教程质量极差,不得遵循。此外,看起来你自己一般都是初学程序员,在这种情况下,我强烈反对在这个阶段使用内核。