2010-10-14 2 views
3

Я пытаюсь установить специальные символы для последовательного порта в программе на C. Я могу найти все шестнадцатеричные коды, кроме кода для ^? (Control + Question Mark), используемый для стирания.Шестигранный код для Control + Question Mark?

Необходимые настройки:

intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>; 
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; 
rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 5; 

Установка специальных символов:

struct termios newtio; 
newtio.c_cc[VMIN]=1; 
newtio.c_cc[VTIME]=5; 
newtio.c_cc[VINTR]= 0x03; 
newtio.c_cc[VQUIT] = 0x1c; 
newtio.c_cc[VKILL] = 0x18; 
newtio.c_cc[VEOF] = 0x04; 
newtio.c_cc[VEOL] = 0; 
newtio.c_cc[VEOL2] = 0; 
newtio.c_cc[VSWTC] = 0; 
newtio.c_cc[VSTART] = 0x11; 
newtio.c_cc[VSTOP] = 0x13; 
newtio.c_cc[VSUSP] = 0x1A; 
newtio.c_cc[VREPRINT] = 0x12; 
newtio.c_cc[VWERASE] = 0x17; 
newtio.c_cc[VLNEXT] = 0x16; 
newtio.c_cc[VDISCARD] = 0x0f; 
+0

Это первое, что я слышал о '^?', Используемом в качестве синонима для DEL. По-видимому, это достаточно распространено. –

ответ

5
$ od -c <<< ^? 
0000000 177 \n 
0000002 
$ 

Так, 0x7f.

2

Это, как правило, либо < - Backspace (0x08) или DEL (0x7f). Поскольку backspace почти всегда будет отображаться как ^H (CTRLH), я бы предложил 0x7f - это тот, который нужно попробовать.

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