I've created WRITE_IOCTL in kernel module and I call it in user mode:
ioctl(fd, WRITE_IOCTL, "Hello, Kernel!");
In kernel mode I have:
static int device_ioctl(struct file *filp,
unsigned int cmd, unsigned long args) {
char buff[14];
switch (cmd) {
case WRITE_IOCTL:
copy_from_user( buff,(char *)args, 14);
printk("This message received from User Space: %s\n", buff);
break;
}
return 0;
}
When I run this ioctl, I have some thing like theses in /var/log/kern.log :
This message received from User Space: Hello, Kernel!vE�
This message received from User Space: Hello, Kernel!M�
This message received from User Space: Hello, Kernel!M�
How can I solve this problem??