实践项目
首先把老师的压缩包在虚拟机中解压缩,运行每个代码
1、cp的作用就是读取一个文件的内容到存储器,在新的地址创建空白文件,再从存储器将内容写入新文件。(如下图把ls1.c复制,存为lc.c文件)
2、ls1程序的作用是在当前目录显示文件名(未带参数直接显示,带参数的存入argc)
3、ls2不仅显示了文件名,还用来显示文件的详细信息,比如用户名、群组名、大小、创建时间、读写权限等。
4、echostate代码用来检查命令行中的提示符是否显示的,如果显示,输入的命令都可见,不显示则表示输入的命令不可见。
5、fileinfo代码这个功能用来实现显示文件信息,建立了一个stat数据结构。先判断命令是否有操作数,有的话才能继续进行下去,如果没有报错就打印出来相关文件信息,报错就用perror将报错信息打印出来。
6、filesize代码用st_size成员来计算文件的字节数大小,gcc后有一个警告,调用正常。
7、setecho代码用来改变echo状态。
8、spwd代码的功能是列出当前目录。
9、testioctl代码用来显示当前文件的大小
习题筛选:
10.1
1、首先,建立相关文件10-1.c、foo.txt、baz.txt
2、将娄老师开学时上传的CSAPP.2nd.code文件解压至虚拟机中,从中找到libcsapp32.a静态库文件、csapp.h、csapp.c,把它们放在10-1.c所在的Terminal的主文件夹中。因为虚拟机为32位,.c文件中才是定义的那些函数的具体实现。
3、接下来,把csapp.c生成静态库libcsapp.a,它相当于main函数,这样可以直接使用,运行习题代码。
4、因为csapp.c中有关于线程的头文件,所以需要加上-lpthread,这个命令是使其连接csapp.h来调用csapp.c,来运行代码10-1.c,得出结果fd2 = 3。