本文基于unix环境高级编程的学习的笔记,写的比较简如有不对,欢迎指点。

简单的描述下面函数的功能改变ctr+c信号原本的作用终止程序,在按下中断键的时候输出一句话。

while循环主要读取用户的输入,根据用户的输入解析输入的命令之后调用exec函数执行命令

 #include "apue.h"
#include <sys/wait.h> void sig_int(int signo)
{
printf("interrup\r\n");
} int main(void)
{
char buf[MAXLINE];
pid_t pid;
int status; if(signal(SIGINT,sig_int) == SIG_ERR)
err_sys("signal error"); printf("%%");
while(fgets(buf,MAXLINE,stdin) != NULL){
if(buf[strlen(buf) - ] == '\n')
buf[strlen(buf) - ] = ;
if((pid = fork()) < ){
err_sys("fork error\r\n");
}else if(pid == ){
execlp(buf,buf,(char *));
err_ret("couldn't execute:%s",buf);
exit();
} if((pid = waitpid(pid,&status,)) < )
err_sys("waitpid error");
printf("%% "); }
exit(); return ;
}

运行情况如下:

                      

1.10

最新文章

  1. FireFox每次访问页面时检查最新版本
  2. windows添加linux 启动引导项
  3. 解决Spring4 MVC请求json数据报406错误
  4. HDU5829 NTT
  5. Java更新XML的四种常用方法简介
  6. centos6.5安装vsftp服务并配置虚拟账户ftp
  7. 利用GDB在远程开发机进行调试
  8. hdu4393 Throw nails(只用模拟前面500来次,后面根据速度、位置、id值排序即可)
  9. LeetCode 202. Happy Number (快乐数字)
  10. java时间操作
  11. P1090 合并果子 题解
  12. 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)
  13. mongodb突然出现不是内外部命令或可执行
  14. 如何在Linux上清理内存缓存、缓冲与交换空间
  15. python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义
  16. 洛谷 P1691 有重复元素的排列问题 解题报告
  17. .NetCore下使用Prometheus实现系统监控和警报 (五)进阶自定义收集指标 之 Counter
  18. 多进程于多线程的区别,cpu密集型适合用什么
  19. python读取grib grib2气象数据
  20. SSM 框架快速整合实例--学生查询

热门文章

  1. SVG动画实践篇-字母切换
  2. android TextView 设置字体大小
  3. C# 将链表存入二进制文件及读取二进制文件得到链表示例
  4. pwm驱动原理和代码实现
  5. Kick the ball!(dfs)湖南省赛第十届
  6. html嵌套规则
  7. BEGINNING SHAREPOINT&amp;#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office的JavaScript对象模型
  8. WinDbg抓取dmp文件
  9. 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
  10. XML(四)dom4j解析XML