NAME(名称)

clear - 清除终端屏幕

SYNOPSIS(总览)

clear

DESCRIPTION(描述)

  • clear可以在允许的情况下清屏.
  • 它会在环境变量中查找终端的类型, 然后到terminfo数据库中找出清屏的方法.
    《man手册》
 #include <stdio.h>int 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.h>int 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.h>void sigHandler(int sig)
{   char * p[8] ;printf("ctrl+z\n");p[0] = "clear";execvp(p[0],p);
}int main()
{while(1){if(signal(SIGTSTP,sigHandler) == SIG_ERR)perror("signal"),exit(0);}
}

实验结果

这个时候程序退出了。为什么呢

浅谈shell中的clear命令实现相关推荐

  1. Android系统shell中的clear命令实现

    之前一直不太清楚,当我们在shell命令行输入很多命令,会在屏幕上输出一些信息,为什么一执行clear这个命令以后,所有的信息就没了呢? 现在终于搞明白了,找到了clear命令的源代码clear.c ...

  2. linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释

    摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: ...

  3. 浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释

    浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给 ...

  4. linux中whoami命令的作用是,浅谈linux中的whoami与 who指令

    浅谈linux中的whoami与 who指令 whoami 功能说明: 显示用户名称 语法: whoami 补充说明: 显示自身的用户名称,本指令相当于执行  id -un 指令 whoami 与 w ...

  5. 实现Linux的whoami命令,浅谈linux中的whoami与 who指令

    whoami 功能说明: 显示用户名称 语法: whoami 补充说明: 显示自身的用户名称,本指令相当于执行  id -un 指令 whoami 与 who am i的区别 who这个命令重点在用来 ...

  6. 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  7. ldconfig mysql_浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  8. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  9. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

最新文章

  1. mysql sql 语句事务_MySQL: 3、SQL语言 ②约束、事务
  2. 为什么很多人说 Java 不适合编写桌面应用?
  3. Codeforces 1205C Palindromic Paths (交互题、DP)
  4. python 创建子类_python创建子类的方法分析
  5. linux ksh教程下载,学习Linux中ksh的用法
  6. linux如何删除行首的空格
  7. java 对象嵌套_java如何把嵌套的对象装入集合?
  8. 将byte[]转为各种进制的字符串
  9. c语言单循环赛制,循环赛日程安排问题(分治法)
  10. linux引导界面背景,如何个性化syslinux引导界面背景照片
  11. android html footer 固定,footer保持在页面底部的两种方法
  12. js实现电子签名功能
  13. 微信公众号封面一键生成器-续
  14. 如何在虚拟机中VMware安装centos_6
  15. (蓝桥杯)数字三角形。。(最简单的dp题)
  16. MyEclipse2014用外部的浏览器运行web项目
  17. 数仓工具—Hive实战之拉链表(3)
  18. USB 输入,集成OVP过压保护锂电池充电芯片产品-19号电路板
  19. 3D音频再现理论研究(一)---3D音频技术历史介绍(转)
  20. hexo solar主题 + github搭建个人博客(二)----基本信息、头像图标、联系方式、导航栏

热门文章

  1. 百度地图批量转换 GPS坐标转百度地图坐标 问题
  2. [ZJJOI2013]K大数查询 整体二分
  3. MySQL5.7本地首次登录win10报错修改
  4. Unity3D_(游戏)2D坦克大战 像素版
  5. VS2015配置内核WDK7600环境,32位下.
  6. 排序算法之(7)——堆排序
  7. BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]
  8. Java12题:发奖金问题
  9. [转]javascript小技巧,超强推荐
  10. 计算机本地网络如何共享,本地网络共享怎么实现