Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。在使用Shell实现一键安装包的时候,用到expect来实现自动化交互的功能。例如,我们在实现ssh localhost登陆的时候,让终端自动输入yes并回车。
继续阅读
实验六 线程及其同步—哲学家问题的线程版_Unix环境高级编程
实验六哲学家问题的线程版,本科生跟研究生的实验内容是一样的,但要求不一样。本科生要求用信号量来实现,比较简单,研究生用的是条件变量和互斥量来实现。
实验五 信号处理_Unix环境高级编程
《UNIX环境高级编程》实验五 信号处理,本科生跟研究生做的实验是不同的。本科生做的是带时间限制的 myshell,研究生做的是实现与 UNIX 的 sleep 函数一样的 mysleep。
信号这部分的实验,特别是本科生的实验,之所以难,是因为大多连书上的内容都没去看明白,又怎么可能做得出来,给你代码看你都看不出个所以然。所以,先老老实实把书上相关的内容看明白再说。研究生的实验倒真的是难,要考虑的情况比较多。这两个实验的代码我都放上来了,mysleep 的代码在文章后头。
实验四 模拟“五个哲学家”问题_Unix环境高级编程
实验所给的《UNIX环境高级编程实验指导.doc》中其实已经给出了本实验的详细思路:主要就是利用文件来进行进程间的通信。
实验三 目录树的遍历_Unix环境高级编程
被老师要求做PPT给同学讲解一下程序4-7和实验三,只好再认真看下程序并重写了一次实验。重写时,就发现不少问题了。因为这些UNIX的实验网上有代码,所以抄袭借鉴的情况很严重(其实我研一写得也是借鉴的...),但网上能搜到的那几个代码,实在不敢恭维... 小错误不少,加上老师没给test,所以错了估计也发现不了,最典型的如第一个功能,要求是长度不大于4096字节,网上的程序好几个都是 statptr->st_size < 4096
,应该是 statptr->st_size <= 4096
呐...
如果你搜到了我写的这个版本,那么恭喜你,你这个实验可以做的很完善。这篇文章可以让你更好的理解这个实验,而且我的代码经仔细修改,保证不坑你~
实验二 同步与异步write的效率比较_Unix环境高级编程
问题描述
实验二计算 write 耗费的时间,来比较同步写和异步写的性能差异。显示的时间应当尽量接近write操作过程所花的时间。不要将从磁盘读文件的时间计入显示结果中。
实验要求程序必须指定输出的文件名,而该文件是否按同步方式打开,则是可以选择的。因此程序至少带一个、至多两个输入参数。程序默认从标准输入 STDIN_FILENO 读取输入文件,可以利用shell的输入定向功能选择具体的输入文件。
实验一 实现带参数的简单Shell Unix环境高级编程
问题描述
实验一利用课本第9页程序1-5的框架,实现允许输入命令带参数的简单shell。原来的实现是不能够带参数的。输入命令所能带的参数个数,只受到系统键盘输入缓冲区长度(以及shell输入缓冲区长度)的限制,该缓冲区的缺省长度是4096个字节。