教材总结
1.构造并发程序的方法有三种:
1.进程。每个逻辑流都是一个进程,由内核来调度和维护。
2.I/O多路复用。在这种形式中,应用程序在一个进程的上下文中显式地调度它们自己的逻辑流。逻辑流被模型化为状态机。因为程序是一个单独的进程,所以所有的流都共享同一个地址空间。 3.线程。线程是运行在单一进程上下文中的逻辑流,由内核进行调度2.C/S编程模型
客户端和服务器都是进程,C/S编程模型由一个服务器进程和一个或多个客户端进程组成
服务器进程管理某种资源,通过操作这种资源来为它的客户端提供某种服务。基本操作为事务,一个客户端-服务器事务由四步组成: 客户端向服务器发送请求,发起一个事务; 服务器收到请求,操作资源; 服务器给客户端发送一个响应,并等待下一个请求。 客户端收到响应并处理它。3.线程控制及相关系统调用
线程:运行子进程上下文中的逻辑流
mypwd实现
1.实际操作使用pwd命令:
2.使用man命令学习pwd:
3.实现mypwd(借鉴了一下学长学姐的经验教训)
(1)思路:
调用stat函数获得当前目录文件的iNode值,以及父辈目录的iNode; 判断当前目录iNode值与父目录iNode值是否相等,如果相等则打印出存有路径的字符串; 判断此时的iNode是否使用chdir进入上一层父目录; 调用opendir打开当前目录文件,并使用readdir读取所有文件的iNode值并与之前iNode值对比,如果一致,则将文件名存入字符数组中; 返回第一步; 打印出存有路径的字符串;(2)测试: