code:open - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 打开文件 的 系统调用函数
- 从 用户态 传入2个参数 name, mode
- name : 文件路径
- mode :
- 0 : 读模式
- 1 : 写模式
- 2 : 读写模式
5761
5762 /*
5763 * open system call
5764 */
5765 open()
5766 {
5767 register *ip;
5768 extern uchar;
5769
5771 if(ip == NULL)
- ip 指向 文件路径name 对应的 文件inode块
5772 return;
5773 u.u_arg[1]++;
5774 open1(ip, u.u_arg[1], 0);
- mode ← mode + 1
- 此处进行了参数修正,因为 对外的常量定义 mode,与对内的常量定义 FREAD,FWRITE 不一致
- FREAD,FWRITE的定义,参看file.h
5775 }
- 工作交由 open1 统一处理
5776 /* ------------------------- */
- (open = 5.)
- sys open; name; mode
- (file descriptor in r0)