Я написал обработчик сигнала, который печатает строку из буфера, сначала удаляет предыдущую приглашение, печатает строку и снова печатает приглашение в конце экрана. вот мой обработчик. 033 Приглашение в unix
void print(int param)
{
int c;
signal(SIGALRM, print);
printf("\b\b\b\b\b\b\b\b\b\b\033[0K");
print_line();
printf("\033[7m--HEY--\033[0m");
}
Этот обработчик делает все, что я хотел, за исключением того, что я не мог видеть подсказку в конце экрана. Я не понимаю, почему я не вижу подсказки?
У вас есть «escape-последовательности» в том, что вы печатаете. Зачем? –
Поскольку я печатаю приглашение перед входом в этот цикл, поэтому сначала хочу удалить его и снова напечатать после печати строки. –
'\ b' - это побег в обратном пространстве. Я говорю о том, где у вас '\ 0'. Я почти уверен, что это байт «null». Если компилятор не интерпретирует это как восьмеричную escape-последовательность '\ 033'. –