在系统级别创建和删除文件

在系统级别创建和删除文件

会发生什么内核级别当有人创建或删除文件包括所有家务活动)?

我在谷歌上搜索了一番,但没找到好的答案。如果这个问题看起来微不足道,请原谅,但由于我对操作系统概念相当薄弱,我不知道答案。 这是一个面试问题。

答案1

您需要检查与相关命令关联的系统调用,以了解正在发生的事情的低层次概念。

跟踪系统调用的工具是strace

例如,如果我运行检查与使用最显着的系统调用(以及其他系统调用)strace touch foobar.txt创建空文件相关的系统调用是:touch

open("foobar.txt", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

现在阅读man 2 open以了解详细想法。

类似地,如果您想要跟踪rm foobar.txt重要系统调用(以及其他系统调用)的系统调用,则可以:

unlinkat(AT_FDCWD, "foobar.txt", 0)     = 0

现在读man 2 unlinkat

您还可以strace使用选项将输出保存到文件以供将来诊断-o

strace -o s_out.txt touch foobar.txt

您还可以仅跟踪特定的系统调用:

strace -e open touch foobar.txt

另请检查man strace

相关内容