Бесконечная печать по команде чтения символьного устройства (через команду cat)

Я получаю циклическую печать записанных данных на символьном устройстве при использовании команды cat для чтения из файла устройства. Я новичок в этом, поэтому я, вероятно, делаю это неправильно, был бы признателен за помощь, пытаясь понять это`

static ssize_t device_read( struct file* file,
                        char __user* buffer,
                        size_t       length,
                        loff_t*      offset )
{
  // read doesnt really do anything (for now)
  int i;
  printk( "Invocing device_read(%p,%d) - "
      "operation not supported yet\n"
      "(last written - %s)\n",
      file, length, the_message );
  for(i = 0; i < length && i < BUF_LEN; ++i )
  {
    put_user(the_message[i],&buffer[i]);
  }
  return i;
  //invalid argument error
  return -EINVAL;
}

0 ответов

Другие вопросы по тегам