Я пишу какое-то приложение, которое будет связываться (писать только) с моим пользовательским USB-последовательным устройством. Это приложение Cocoa (OS X) и часть, связанная с этой записью, закодирована в стиле POSIX.Как написать 0x00 в файл
Я решил в основном все, но имел проблемы с символом NULL (0x00).
Например, разрешает указывать, что мне нужно записать 5 символов в файл.
Мой код выглядит следующим образом:
char stringAsChar[5];
stringAsChar[0] = 0x77;
stringAsChar[1] = 0x44;
stringAsChar[2] = 0x00; //here is an problem
stringAsChar[3] = 0x05;
stringAsChar[4] = 0xFF;
...
fputs(stringAsChar, file); // write to file
Каждый символ в указанном индексе представляет данные для некоторых регистров в целевые устройства.
Проблема возникает, когда поток включает символ 0x00, который мне нужно иметь в качестве данных, запись там останавливается (0x00 интерпретируется как остановка потока).
Как преодолеть эту проблему?
Отлично, спасибо и всем другим пользователям за подобные ответы. Он работает так, как обычно, с обычными файлами, мне нужно протестировать с реальной записью устройства на /dev/cu.myusbdevice. – mikikg
Да, он работает с написанием на /dev/cu.myusbdevice. Задача решена ;) – mikikg