Создание и удаление файла на системном уровне [закрыто]

Что происходит на уровне ядра , когда кто-то создает или удаляет файл (, включая все служебные действия )?

Я погуглил, но не смог найти хорошего ответа. Прошу извинить, если это кажется тривиальным вопросом, но, поскольку я довольно слаб в понятиях операционной системы, я не знаю ответа. Это был вопрос собеседования.

0
задан 13 August 2015 в 09:16

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.

2
ответ дан 1 October 2019 в 04:39

Другие вопросы по тегам:

Похожие вопросы: