это очень конкретный c вопрос
Меня в основном интересуют системные вызовы open (), которые происходят при запуске touch .
. Итак, я запустил strace touch .
и увидел, что opennat () вызывается три раза.
, но я не совсем понимаю, что происходит; as touch .
ничего не выводит в консоль и не создает новый файл с именем "." поскольку "." является указателем на текущую папку и его можно увидеть, запустив ls -a
, поэтому ничего не создается, так как это имя уже используется.
это мое предположение: open () вызывается для проверки, если указанный файл имя уже завершается, если возвращается дескриптор файла, это означает, что имя уже используется и операция отменена.
поправьте меня, если я ошибаюсь.