我想修改/usr/src/servers/vfs/open.c中的do_mkdir,以便当我尝试使用mkdir命令在终端中打印我创建的目录的绝对路径时。我怎么能得到它?有什么想法吗?
我尝试了getcwd但是我得到了一个未定义的引用错误。
答案 0 :(得分:0)
完整路径位于do_mkdir
函数开头定义的变量fullpath中。访问权限也在下面代码中列出的变量上
printf("New dir -> %s, ", fullpath);
printf( (bits & S_IRUSR) ? "r" : "-");
printf( (bits & S_IWUSR) ? "w" : "-");
printf( (bits & S_IXUSR) ? "x" : "-");
printf( (bits & S_IRGRP) ? "r" : "-");
printf( (bits & S_IWGRP) ? "w" : "-");
printf( (bits & S_IXGRP) ? "x" : "-");
printf( (bits & S_IROTH) ? "r" : "-");
printf( (bits & S_IWOTH) ? "w" : "-");
printf( (bits & S_IXOTH) ? "x\n" : "-\n");
将此代码放在do_mkdir
行前unlock_vnode(vp);
的末尾,然后就完成了!
Έχειςκάνειταυπόλοιπαερωτήματα??
答案 1 :(得分:0)
我认为简单地打印fullpath变量不起作用。 实际上,我测试了它,它似乎只打印创建的目录的名称。有线索吗?