作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在为即将到来的考试学习时,我遇到了以下问题:
用户尝试执行的 UNIX 命令是什么?标有 * 的行发生了什么?出了什么问题?
我发现用户可能想要执行类似的操作
ln -s dir ls
但这并没有给我预期的输出。
最佳答案
所以我自己回答了这个问题。
用户尝试执行的命令是 ln ls dir
,其主要目标是使用单词 dir 作为 ls 命令的“别名”。
这是错误的,因为用户尝试在一个不授予他写入权限的目录中操作(最有可能是 /bin
目录),这意味着他无法创建文件(硬链接(hard link))在此目录中。
通过使用 ktrace/kdump 我成功地重现了输出:
[...]
*77019 ln CALL stat(0x7fffffffebab,0x7fffffffd668)
77019 ln NAMI "test/ls"
77019 ln RET stat 0
*77019 ln CALL lstat(0x7fffffffebb3,0x7fffffffd668)
77019 ln NAMI "test/dir"
77019 ln RET lstat -1 errno 2 No such file or directory
*77019 ln CALL stat(0x7fffffffebb3,0x7fffffffd668)
77019 ln NAMI "test/dir"
77019 ln RET stat -1 errno 2 No such file or directory
*77019 ln CALL lstat(0x7fffffffebb3,0x7fffffffd668)
77019 ln NAMI "test/dir"
77019 ln RET lstat -1 errno 2 No such file or directory
*77019 ln CALL linkat(AT_FDCWD,0x7fffffffebab,AT_FDCWD,0x7fffffffebb3,0x400)
77019 ln NAMI "test/ls"
77019 ln NAMI "test/dir"
77019 ln RET linkat -1 errno 13 Permission denied
[...]
*77019 ln CALL exit(0x1)
标有星号的步骤解释如下:
第一个系统调用是收集原始文件 (´ test/ln
) 的 inode 信息。接下来,它检查目标文件 ( test/dir
) 是否已存在,无论是作为命名文件 ( stat
) 还是作为符号链接(symbolic link) ( lstat
)。
因为情况并非如此,该进程尝试链接文件( linkat
- 在原始示例中: link
)。正如前面提到的,由于权限的原因,这会出错。
该过程最终以负退出代码结束。
关于c - 系统调用: Interpreting ktrace output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38591667/
在为即将到来的考试学习时,我遇到了以下问题: 用户尝试执行的 UNIX 命令是什么?标有 * 的行发生了什么?出了什么问题? 我发现用户可能想要执行类似的操作 ln -s dir ls 但这并没有给我
我是一名优秀的程序员,十分优秀!