CSAPP: shell lab

本文详细介绍了如何实现一个Unix下的简易shell,涵盖了作业控制命令的实现和信号处理,同时分享了作者在多进程编程及使用GDB调试过程中遇到的问题和解决方法。还提供了一个关于GDB调试信号处理的实践案例。

实验下载地址: https://github.com/xuzhezhaozhao/CSAPP-Labs.git

或 http://download.youkuaiyun.com/detail/xuzhezhaozhao/5341206

这个实验内容是实现一个unix下的简易shell, 需要实现的功能包括bg, fg等作业控制命令, 还需要实现ctrl-c, ctrl-z等信息的处理, 由于实现这个shell需要进行多进程的编程,这是第一次进行多进程编程,用GDB调试的时候比较不熟练,问题也是稀奇古怪的,感觉最麻烦的那个waitfg函数的实现,开始用简单的sleep, 结果问题多多,因为只要进程接收到信号,sleep函数就会退出。最后搞了几天终于是把程序都调好了,16个测试文件前15个都能通过,第16不知道怎么测试,说是不从终端接收信号,要从别的进程接收信号,不知道怎么搞。


关于用GDB调试信号的处理可以看我的这篇blog:http://blog.youkuaiyun.com/xuzhezhaozhao/article/details/8894836.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值