2015-09-30 3 views
0

Ссылаясь на источник в следующей ссылке: Serial_Port_Programming_How_ToLinux последовательный порт программирования c_cc конфигурации символов

я узнал, что есть c_cc конфигурации символов там. После поиска вокруг привязанностей я не нашел точного ответа на этот вопрос. Я пытаюсь прокомментировать каждую строку этих конфигураций c_cc и выяснил, что следующая строка влияет на вывод.

newtio.c_cc[VEOF]  = 4; 

Может ли кто-нибудь объяснить смысл этого и, возможно, остального?

Благодаря

+2

Вы проверили, например. [страница руководства termios] (http://man7.org/linux/man-pages/man3/termios.3.html)? –

+0

спасибо, не могли бы вы отправить свой ответ на ответ «ответ», чтобы я мог проверить его? – Sam

ответ

1

Как было предложено, страница руководства для termios является отправной точкой:

VEOF

(004, СРВ, Ctrl-D) отслужившие файла символов (EOF). Подробнее точно: этот символ заставляет незавершенный буфер tty быть отправлен в ожидающую программу пользователя, не дожидаясь окончания строки. Если это первый символ строки, read (2) в пользовательской программе возвращает 0, что означает конец файла. Признается, когда ICANON установлен, а затем не передается как вход.

В контексте данной ссылке, 3.1. Canonical Input Processing, ОП отметил, что закомментировав задание

newtio.c_cc[VEOF]  = 4; 

предотвращает ^D от работы, как и ожидалось. Это и подобные присваивания соответствуют настройкам, которые можно использовать для сценария оболочки с stty. Внутренне (с использованием termios) они установлены на не определено значение при назначении 0xff, но по умолчанию 0x00 почти так же хорошо.

Смежные вопросы