# # #include #include #include void (){ time_t rawtime;struct * timeinfo;char *s;signal(SIGALRM,prtime);time ( &rawtime );timeinfo = localtime ( &rawtime ); (1);//printf("Time\n");printf [S][6;45H %s \033[u",上升时间(timeinfo) ];} int main() {信号(SIGALRM,prtime);警报(1 );printf(“继续指令\n”);同时(1){暂停();printf(“继续指令\n”);}}
我只是尝试将时钟写在终端的特定位置,但我想在写入时钟之前保存光标位置,然后在写入时钟后恢复该位置。
但是\033[s & \033[u不起作用。
发布于 2013-02-22 13:18:50
您使用的是命令CSI s和CSI u,它们根据实现的不同具有不兼容的解释。
第一个可以是“保存游标位置”或“重置终端模拟器”,后者是Solaris专用接口。
您应该使用像ncurses这样的库来实现可移植的屏幕处理,但是如果您仍然想对转义序列进行硬编码,这可能会达到您预期的效果:
printf ( "\0337\033[6;45H %s \0338", asctime (timeinfo) );https://unix.stackexchange.com/questions/65724
复制相似问题