北京知名的网站建设公司排名,品牌网站建设福州,江苏做网站找谁,正能量餐饮品牌全案设计公司NAME(名称)
clear - 清除终端屏幕
SYNOPSIS(总览)
clear
DESCRIPTION(描述)
clear可以在允许的情况下清屏. 它会在环境变量中查找终端的类型, 然后到terminfo数据库中找出清屏的方法. 《man手册》 #include stdio.hint clear_main(int argc, char **argv) {/* Th…NAME(名称)
clear - 清除终端屏幕
SYNOPSIS(总览)
clear
DESCRIPTION(描述)
clear可以在允许的情况下清屏. 它会在环境变量中查找终端的类型, 然后到terminfo数据库中找出清屏的方法. 《man手册》 #include stdio.hint clear_main(int argc, char **argv) {/* This prints the clear screen and move cursor to top-left corner control* characters for VT100 terminals. This means it will not work on* non-VT100 compliant terminals, namely Windows cmd.exe, but should* work on anything unix-y. */fputs(\x1b[2J\x1b[H, stdout);return 0;
fflush(stdout)清空输出缓冲区并把缓冲区内容输出。
“\x1b[2J”,//清除整个屏幕行属性变成单宽单高光标位置不变
“\x1b[H”,//光标移动
代码测试
#include stdio.h
#include stdlib.h
#include unistd.hint main()
{int pid fork();if(pid 0){while(1){printf( father \n);sleep(1);}}else if(pid 0){ while(1){fflush(stdout);fputs(\x1b[2J\x1b[H, stdout);sleep(5);}}else{perror(fork);}
}动图展示结果 系统默认是用CTRl Z 来暂停进程但是我们把SIGTSTP信号截断改成CTRl L 会有什么效果呢
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#include signal.hvoid sigHandler(int sig)
{ char * p[8] ;printf(ctrlz\n);p[0] clear;execvp(p[0],p);
}int main()
{while(1){if(signal(SIGTSTP,sigHandler) SIG_ERR)perror(signal),exit(0);}
}
实验结果
这个时候程序退出了。为什么呢