Я изучаю UNIX и системные вызовы, и я сталкивался с низкими и сложными вопросами. Вопрос спрашивает, что системные вызовы называются для этой команды:Неявные системные вызовы в командах UNIX
grep word1 word2 > file.txt
Я сделал некоторые исследования, и я не смог найти огромное количество ресурсов на подстилающей UNIX вызовов. Тем не менее, мне кажется, что ответ будет open
(открыть и дескриптор файла для файла file.txt
), затем dup2
(изменить STDOUT
из grep
в файле дескриптора open
), то write
чтобы написать STDOUT
из grep
(который теперь является файловым дескриптором file.txt
) и, наконец, close()
, чтобы закрыть дескриптор файла file.txt
... Однако я понятия не имею, прав я или по правильному пути, может ли кто-нибудь с опытом работы в UNIX просветить меня Эта тема?
Я надеюсь, что вы найдете ответ на свой вопрос здесь , но вы можете найти [этот стек] (http://unix.stackexchange.com/), который лучше подходит для ответа на него. Удачи! – Vandal
Вы можете посмотреть [исходный код GNU grep] (http://git.savannah.gnu.org/cgit/grep.git). –
Перенаправление STDOUT' выполняется оболочкой, 'grep' даже не знает, что происходит перенаправление, это полностью прозрачно. –