繁体   English   中英

Linux内核空间中的结构?

[英]Structs in Linux Kernel Space?

我的问题是关于Linux内核空间中结构的用法和行为。 我正在编写一个字符设备驱动程序:

struct LEDs{

    int red_l;
};

ssize_t gmem_driver_write(struct file *file, const char *buf,
       size_t count, loff_t *ppos)
{

    struct LEDs myled;
    printk("Red is: %d \n", myled.red_l);       
    return 0;
}

static long my_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
{

    struct LEDs myled = {};
    myled.red_l = 1;
    return 0;
}

如果我先调用my_ioctl,然后从用户空间写入,我期望red_l在struct LED中具有值1,然后期望它在write函数中打印。 但是它会打印一个垃圾值。

我的问题:由于此逻辑适用于用户空间,因此这里有什么不同之处吗? 如何使它在Linux Kernel Space中工作?

该逻辑在用户空间中的工作原理与在内核空间中相同。 即,这两种方法都不起作用。 在不同的函数中声明两个具有相同名称的变量不会使它们成为相同的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM