init не создает внутренне файл устройства [duplicate]

Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:

SqlConnection connection = null;
connection.Open();

Это вызовет ошибку, потому что, пока я объявил переменную «connection», она не указала ни на что. Когда я пытаюсь вызвать член «Open», для его устранения нет ссылки, и он будет вызывать ошибку.

Чтобы избежать этой ошибки:

  1. Всегда инициализируйте свои объекты, прежде чем пытаться что-либо с ними делать.
  2. Если вы не уверены, что объект имеет значение null, проверьте его с помощью object == null.

Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.

11
задан Mir 2 January 2012 в 06:03
поделиться

5 ответов

Я мог видеть записи внутри /dev после создания узла, выполнив следующую команду на консоли.

sudo mknod -m 0666 / dev / msio c 22 0

Пользователь не был root, поэтому мне пришлось использовать sudo. Мое имя было msio, символьное устройство с основным и второстепенным номером 22, 0 соответственно.

Я сообщу вам, если это может быть достигнуто программно.

3
ответ дан Abhijeet Kasurde 26 August 2018 в 18:18
поделиться

Сначала вы должны использовать: sudo mknod / dev / devicename c 81 0

Он создает файл устройства в / dev, но вы должны дать ему разрешение на чтение / запись. для этого,

sudo chmod 777 / dev / devicename

Выполнено !!!

0
ответ дан Akash Patel 26 August 2018 в 18:18
поделиться

Возможно, вам понадобится создать некоторые правила udev , чтобы сообщить системе, какие устройства (ы), которые вам нужны для создания.

3
ответ дан duskwuff 26 August 2018 в 18:18
поделиться
  • Включить файл заголовка linux / device.h и linux / kdev_t.h
  • static struct class c_dev;
  • static struct dev_t dev;

Добавьте нижеприведенный API внутри __init fuction драйвера

  • cl = class_create (THIS_MODULE, "x");

где x - имя, которое должно отображаться внутри / sys / class / при загрузке драйвера.

  • Используйте device_create () kernel api с device_create (cl, NULL, dev, NULL, "d");

, где d - файл устройства, который должен быть создан в /dev.

, где dev является переменной для первого номера устройства который инициализируется во время использования alloc_chrdev_region API для динамического выделения основного номера для драйвера

. Для получения дополнительной справки перейдите по ссылке http://opensourceforu.com/2011/04/character- device-files-creation-operations /

2
ответ дан Harish Venkatesan 26 August 2018 в 18:18
поделиться

CONFIG_DEVTMPFS неплохо, если вы можете использовать это с вашим дистрибутивом. Вы можете включить автозапуск ядра для вас при загрузке (CONFIG_DEVTMPFS_MOUNT) или смонтировать его вручную (mount -t devtmpfs none /dev).

2
ответ дан Jamie Iles 26 August 2018 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: