ubuntu内核(Vmware)在/usr/include/linux/fs.h文件中没有struct file_operations结构

时间:2017-05-27 08:51:20

标签: linux-kernel linux-device-driver ubuntu-16.04

遵循教程:

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 *);
    .
    .   
    .
    };

1 个答案:

答案 0 :(得分:0)

这些标头适用于用户空间程序。为什么你期望内核中的fs.h文件在那里?你最初在做什么?

如果检查内核源代码树,您会看到它在usr / include / linux中包含一组单独的头文件。

您正在寻找的可能包名为-devel(或-dev)。 apt-file search应该能够告诉你,或者最好是手动的,无论你应该在这里做什么。

编辑:

本教程的作者在内核源代码树中包含/ linux / fs.h文件。

该教程质量极差,不得遵循。此外,看起来你自己一般都是初学程序员,在这种情况下,我强烈反对在这个阶段使用内核。