Unix

Linux-expect详解

Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。在使用Shell实现一键安装包的时候,用到expect来实现自动化交互的功能。例如,我们在实现ssh localhost登陆的时候,让终端自动输入yes并回车。
继续阅读

实验五 信号处理_Unix环境高级编程

《UNIX环境高级编程》实验五 信号处理,本科生跟研究生做的实验是不同的。本科生做的是带时间限制的 myshell,研究生做的是实现与 UNIX 的 sleep 函数一样的 mysleep。

信号这部分的实验,特别是本科生的实验,之所以难,是因为大多连书上的内容都没去看明白,又怎么可能做得出来,给你代码看你都看不出个所以然。所以,先老老实实把书上相关的内容看明白再说。研究生的实验倒真的是难,要考虑的情况比较多。这两个实验的代码我都放上来了,mysleep 的代码在文章后头。

继续阅读

实验三 目录树的遍历_Unix环境高级编程

被老师要求做PPT给同学讲解一下程序4-7和实验三,只好再认真看下程序并重写了一次实验。重写时,就发现不少问题了。因为这些UNIX的实验网上有代码,所以抄袭借鉴的情况很严重(其实我研一写得也是借鉴的...),但网上能搜到的那几个代码,实在不敢恭维... 小错误不少,加上老师没给test,所以错了估计也发现不了,最典型的如第一个功能,要求是长度不大于4096字节,网上的程序好几个都是 statptr->st_size < 4096,应该是 statptr->st_size <= 4096 呐...

如果你搜到了我写的这个版本,那么恭喜你,你这个实验可以做的很完善。这篇文章可以让你更好的理解这个实验,而且我的代码经仔细修改,保证不坑你~

继续阅读

实验二 同步与异步write的效率比较_Unix环境高级编程

问题描述

实验二计算 write 耗费的时间,来比较同步写和异步写的性能差异。显示的时间应当尽量接近write操作过程所花的时间。不要将从磁盘读文件的时间计入显示结果中。

实验要求程序必须指定输出的文件名,而该文件是否按同步方式打开,则是可以选择的。因此程序至少带一个、至多两个输入参数。程序默认从标准输入 STDIN_FILENO 读取输入文件,可以利用shell的输入定向功能选择具体的输入文件。

继续阅读