У меня есть следующий код в проекте это write
представление ASCII packet
к Unix tty:
int written = 0;
int start_of_data = 3;
//write data to fifo
while (length) {
if ((written = write(fifo_fd, &packet[start_of_data], length)) == -1)
{
printf("Error writing to FIFO\n");
} else {
length -= written;
}
}
Я просто хочу взять данные, которые были бы записаны в сокет и помещали его в переменную. для отладки я просто пытался printf
первая буква/цифра. Я попробовал многочисленные способы заставить это распечатывать, но я продолжаю получать шестнадцатеричные формы (я думаю).
Ожидаемый вывод: 13176 и шестнадцатеричное значение: 31 33 31 37 36 0D 0A (если это - даже шестнадцатеричное число),
Очевидно, мои навыки C не являются самыми резкими инструментами в сарае. Любая справка ценилась бы.
обновление: Я использую hexdump()
получить вывод
Это коды ASCII символов: 31 - это «1», 33 - «3» и т. Д. 0D и 0A - это завершающие символы новой строки, также известные как '\ r' и '\ n' соответственно. Поэтому, если вы конвертируете значения в символы, вы можете распечатать их напрямую, например с printf
с использованием кодов формата % c
или % s
. Как видно из связанной таблицы, опубликованные вами значения представляют собой «13176»: -)