我正在为作为FIFO设备的debian 6内核编程一个设备驱动模块,编译非常正确,我使用以下代码创建它:
Major = register_chrdev(0, DEVICE_NAME, &fops); //Major is an integer value
if (Major < 0) {
printk(KERN_ALERT "Registering char device failed with %d\n", Major);
return -Major;
}
/*
* Creation of buffer;
*/
if( (buf = create_cbuffer_t(MAX_BUFFER_SIZE)) == NULL){
printk(KERN_ALERT "Error when creating the FIFO device.");
return -EINVAL;
}
printk(KERN_INFO "Buffer created without error.\n");
主要编号是251,我用这个创建它的文件:
sudo mknod /dev/fifodev c 251 0
它工作正常,但当我试图进入终端时,这就是结果
dsouser@debian:~/Escritorio/Prac3/ParteB$ echo whatever > /dev/fifodev
bash: /dev/fifodev: Permiso denegado **This means:Permission denied**
这种情况也会发生:
dsouser@debian:~/Escritorio/Prac3/ParteB$ cat /dev/fifodev
cat: /dev/fifodev: Argumento inválido
它内部的问题是什么,或者说它的正确运行方式是什么?
谢谢
最佳答案
更改/dev/fifodev
的权限
sudo chmod 666 /dev/fifodev
关于c - 字符设备中的权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21005341/