0

このように定義するt_ioctlと、警告は表示されません。

long t_ioctl(struct file *filep, unsigned int cmd, unsigned long input){

このように定義する場合t_ioctl:

static long t_ioctl(struct file *filep, unsigned int cmd, unsigned long input){

警告が表示されます:

warning: 't_ioctl' defined but not used

しかし、それが最大であるt_readt_write、静的および非静的関数宣言が警告を引き起こさない場合。例えば:

static ssize_t t_read(struct file *filp, char __user * buf, size_t count, loff_t * f_pos);

あるケースでは警告が表示され、別のケースでは警告が表示されないのはなぜですか?

4

1 に答える 1

5

ほとんどの場合、同じファイルに次のような定義があります。

static struct file_operations fileops = {
    .read     = t_read,
    .write    = t_write,
    /* etc. ... */
};

そして、あなたは行方不明です

.compat_ioctl = t_ioctl, /* or .ioctl/.unlocked_ioctl, depending on version etc. */
于 2012-08-05T17:11:22.087 に答える