неверный суффикс "b020000.usdhc" на целочисленной константе - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь отменить привязку драйвера Linux из файла C, используя следующий код

fp = popen("echo -n "5b020000.usdhc" > 
/sys/devices/platform/5b020000.usdhc/driver/unbind","r");

Когда я пытаюсь скомпилировать, я получаю ошибку ниже.

error: invalid suffix "b020000.usdhc" on integer constant

Как я могурешить эту проблему.

1 Ответ

3 голосов
/ 23 сентября 2019

Вы не можете иметь строку в двойных кавычках внутри строки C без экранирования их:

fp = popen("echo -n \"5b020000.usdhc\" > /sys/devices/platform/5b020000.usdhc/driver/unbind","r");
//                  ^^              ^^
// Note the escaped double-quotes here

Без кавычек у вас есть строка ""echo -n ", за которой следует недопустимыйчисло 5b020000.usdhc, за которым следует строка " > /sys/devices/platform/5b020000.usdhc/driver/unbind".

Хотя в этом конкретном случае, показанном в вопросе, вложенные кавычки вообще не нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...