我“正在写在C(Linux)的字符设备我有这个功能。C:控制达到非void函数的结束...即使它返回int?
static ssize_t
device_write(struct file *file,
const char __user * buffer, size_t length, loff_t * offset)
{
int i, fd = 0;
int = bytes_written;
fd = open(file, O_WRONLY);
printk("device_write(%p,%d)\n", file, length);
for (i = 0; i < length && i < BUF_LEN-1; i++)
get_user(Message[i], buffer + i);
bytes_written = write(fd,Message,i);
Message[BUF_LEN-1] = '\0';
/* return the number of input characters used */
return bytes_written;
}
当我编译我得到的错误:控制到达非void函数的最后,我仔细检查过我正在编译正确的程序,它的驾驶我坚果。
任何帮助将受到欢迎。
而且,稍不相关的,但有可能给init一个字符缓冲区,以一定的字符串(如炭buffer[1000] = "HELLO"
)?
该函数有很多错误。 –
开始:您从无符号函数中返回一个带符号的int。使用相同的类型! – Olaf
是的,你可以用字符串文字初始化一个char数组。所有没有单独初始化的元素都得到一个''\ 0'... ...'在char buffer [1000] =“HELLO”之后;''buffer [5]'到'buffer [999]'(含)的所有元素都有那''\ 0'' – pmg