指针理解fd
fd操作=指针操作 dup等
shell
将命令转换为系统调用序列 工具的组合
普通函数的语义
call
创建一个新的activation frame,将传递的参数等放在frame中,暂挂调用方的执行并且将执行权转移给被调用方
暂挂执行imply了保存当前的内存状态
return
返回值给调用方,摧毁activation frame并且恢复调用方的运行,具体位置是调用位置之后
activation frame
存放了参数,局部变量
以及返回地址和调用方的activation frame地址,用来完成执行的切换
严格的嵌套生命周期,使得可以使用栈这种数据结构来管理frame,高效内存分配
Coroutine语义
suspend允许了不删除frame的情况下切换执行流,这破坏了严格嵌套生命周期
现在activation frame可以视为分成两部分,一部分是不需要持久存储的stack frame,一部分是需要持久存储的coroutine frame
suspend会返回控制本coroutine的handle,用于resume或destroy
destroy不会将执行流还回给上次suspend处,而是执行析构,将suspend处存活的局部变量清理,然后释放coroutine frame
线程取消
是否响应取消
如果不响应,则取消请求会等到设置为响应时再被处理
可响应时机
可异步取消 随时可取消 异步取消安全
ftok
组合文件系统设备号,inode号,和proj参数,试图生成一个唯一的key