Я узнаю о трубопроводах и оболочке в классе Systems. Я возился с strace
. Я запускаю его в некоторой программе под названием dpipe
.Труба() Системный вызов
В журнале strace
, я вижу следующее:
pipe([3, 4])
pipe([5, 6])
Что эти числа представляют? Я под этим трубопроводом в основном используется в оболочке для маршрутизации вывода одной команды на вход другого, используя |
. Так что это просто облегчает нашу жизнь. В этом случае, что представляет собой массив чисел вверх? Кроме того, если piping
просто используется в оболочке, почему существует C syscall? Это сделано исключительно для тех, кто хочет написать свою собственную оболочку (чтобы облегчить жизнь)?
Даже без поддержки системного вызова или многозадачности труб можно реализовать подобную трубу семантику. DOS command.com делает это, перенаправляя вывод одной команды в файл сначала перед началом второй команды. (Это, конечно, имеет последствия и определенные ограничения ..) –