я использую read()
от unistd.h
на дескриптор файла. Мне нужно прочитать первые 4 байта int
переменная и остальное в unsigned char
массив.
Пока что это не работает для получения первых 4 байтов:
unsigned int myInt = 0;
status = read (fd, &myInt, sizeof(myInt);
read()
возвращает -1 и myInt остается 0.
однако чтение в буфер символов работает:
char buf[512];
status = read (fd, buf, sizeof(buf);
read()
правильно возвращает то, что находится в fd
,
Я проверил, unsinged int
четыре байта на моей цели.
Что я здесь не вижу?
РЕДАКТИРОВАТЬ: errno
является Сломанная труба.
Это не обычный файл, из которого я читаю, а дескриптор файла, созданный gadgetfs для получения данных и отправки данных на USB.
Задача ещё не решена.
Других решений пока нет …