实验三文件系统的用户界面

  • 格式:doc
  • 大小:29.50 KB
  • 文档页数:2

实验六 文件系统的用户界面

(一)实验目的

进一步理解、使用和掌握文件的系统调用、文件的标准子例程,能利用和选择这些基本的文件操作完成复杂的文件处理工作。

(二)实验题目

1.编写一个文件复制的C语言程序:

分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的库函数fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),编写一个文件的复制程序。

当上述函数中nbytes, size和nitems都取值为1时(即一次读写一个字节),比较这两种程序的执行效率。当nbytes取1024字节,size取1024字节,且nitems取1时(即一次读写1024字节),再次比较这两种程序的执行效率。

2.分别使用fscanf和fprintf,fgetc和fputc,fgets和fputs(仅限于行结构的文本文件),实现上述的文件复制程序。你还可用其他的方法实现文件的复制功能吗?

3.编写一个父子进程之间用无名管道进行数据传送的C程序。父进程逐一读出一个文件的内容,并通过管道发送给子进程。子进程从管道中读出信息,再将其写入一个新的文件。程序结束后,对原文件和新文件的内容进行比较。

4.在两个用户的独立程序之间,使用有名管道,重新编写一个C程序,实现题3的功能。

实验八 Unix实用程序

(一) 实验目的

熟悉和掌握Unix的shell命令,正则表达式和过滤器程序的使用。

(二) 实验题目

1.上机练习ls,ln,ln –s,diff,file,chown,chmode,head,taill, pr,od等命令。

(1) 假定当前目录中没有ls.save文件,先后键入ls –l和ls –l > ls.save两个命令。请将第一个ls命令的输出和第二个命令的输出文件ls.save中的内容作仔细比较。两者有何不同?并加以解释。

(2) 比较ls,ls *,ls .,ls .* ,ls .?* 这些命令的输出有何不同?

(3) 显示某一文件从n1行到n2行的内容。

(4)以下两条命令:

mv file1 file2

cp file1 file2;rm file1

的执行效果是否总是相同的?请仔细推敲并上机验证

2.上机练习 find命令。

(1)在当前的目录树中显示当天修改的c源程序名。

3.掌握正则表达式的匹配规则,上机练习grep,sed,awk等命令。

(1) 按相反的次序显示输入行及行号。 (2) 统计输入单词的频度。

4.上机练习date,df,du,tar命令。

5.上机练习who,ps,time,nohub命令。

6.上机练习compress,gzip命令。

7.上机练习man,cb,history命令。

实验九 软件开发工具

(一) 实验目的

熟悉和掌握unix主要的软件开发工具 vi,cc(或gcc),ar,ld,make,sdb(或gdb),SCCS的使用。重点是make。

(二) 实验题目

课本习题十一(1),(3),(4),(5),(6)。