Как автоматически монтировать и читать USB-накопитель на Raspberry Pi в C?Linux

Ответить Пред. темаСлед. тема
Гость
 Как автоматически монтировать и читать USB-накопитель на Raspberry Pi в C?

Сообщение Гость »


Я пытаюсь автоматически подключить USB-накопитель к моему Raspberry Pi, после подключения он должен прочитать значения в текстовом документе и отобразить значения на консоли. У меня возникли проблемы с определением того, где находится или должен быть указан путь монтирования, из всего, что я читал в Интернете, я должен указывать точку монтирования на /mnt/usb, однако когда я пытаюсь запустить приведенный ниже код, он не может смонтироваться привод. Однако мне удастся добиться успеха, если я изменю точку монтирования на /media/user/, и диск окажется подключенным. Но затем он не может найти файл на диске, диск в проводнике отображается в /media/user/8,1 ГБ Volume/example.txt, однако изменение точки монтирования для включения тома 8,1 ГБ, похоже, не работает. и я получаю сообщение об ошибке «плохое монтирование».

Любая подсказка о том, что я делаю неправильно, у меня не было большого опыта работы с Linux или C, поэтому все это для меня в новинку, и я не уверен, что указываю нужные места или следую правильной процедуре. . Есть мысли, где я ошибаюсь?
#include #include #include #include bool isMounted(const char *mountPoint) { ФАЙЛ *mountsFile = fopen("/proc/mounts", "r"); если (mountsFile == NULL) { perror("Не удалось открыть /proc/mounts"); выход (1); } строка символов[256]; while (fgets(line, sizeof(line), mountsFile) != NULL) { if (strstr(line, mountPoint) != NULL) { fclose (mountsFile); вернуть истину; } } fclose (mountsFile); вернуть ложь; } интервал основной() { const char *mountPoint = "/media/user"; //был указан на "/mnt/usb", но выдала ошибку монтирования const char *usbDevice = "/dev/sda1"; const char *fileName = "example.txt"; // Подключаем USB-накопитель, если он еще не подключен если (!isMounted(mountPoint)) { символ mountCommand[256]; snprintf(mountCommand, sizeof(mountCommand), "sudo mount %s %s", usbDevice, mountPoint); система (команда монтирования); } // Проверяем, прошло ли успешное монтирование если (!isMounted(mountPoint)) { printf("Не удалось подключить USB-накопитель.\n"); возврат 1; } // Читаем файл с подключенного USB-накопителя символьный путь к файлу [256]; snprintf(filePath, sizeof(filePath), "%s/%s", mountPoint, fileName); ФАЙЛ *file = fopen(filePath, "r"); если (файл == NULL) { printf("Не удалось открыть файл.\n"); возврат 1; } // Читаем и печатаем содержимое файла чар ч; while ((ch = fgetc(file)) != EOF) { printf("%c", ch); } fзакрыть (файл); // Отключаем USB-накопитель символ umountCommand[256]; snprintf(umountCommand, sizeof(umountCommand), "sudo umount %s", mountPoint); система (umountCommand); вернуть 0; }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • USB-накопитель не загружается — Debian [закрыто]
    Гость » » в форуме Linux
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость
  • Какую версию Debian мне следует установить на USB-накопитель, чтобы иметь возможность использовать ее на разных компьюте
    Anonymous » » в форуме Linux
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как определить, вставлен ли USB-накопитель И НАЗВАНИЯ UBS(-ов)
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как определить, вставлен ли USB-накопитель И НАЗВАНИЯ UBS(-ов)
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как определить, вставлен ли USB-накопитель И НАЗВАНИЯ UBS(-ов)
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»