code:creat - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 创建文件 的系统调用
- 从 用户态 传入2个参数 name, mode
- name : 文件路径
- mode :
- 0 : 读模式
- 1 : 写模式
- 2 : 读写模式
5777
5778 /*
5779 * creat system call
5780 */
5781 creat()
5782 {
5783 register *ip;
5784 extern uchar;
5785
5787 if(ip == NULL) {
- ip 指向 文件路径name 对应的 文件inode块
5788 if(u.u_error)
5789 return;
5790 ip = maknode(u.u_arg[1]&07777&(~ISVTX));
5791 if (ip==NULL)
- 创建INODE,并链入父目录
- 标志位强制清 ISVTX,定义参看inode.h
5792 return;
5793 open1(ip, FWRITE, 2);
5794 } else
- LIONS源代码原文为
5794 }
疑为笔误
5795 open1(ip, FWRITE, 1);
5796 }
5797 /* ------------------------- */
- (creat = 8.)
- sys creat; name; mode
- (file descriptor in r0)