Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   Реализация конвейера на Си! NEED HELP! (http://forum.oszone.net/showthread.php?t=126297)

st031 17-12-2008 21:43 983402

Реализация конвейера на Си! NEED HELP!
 
Подскажите, пожалуйства алгоритм реализации конвейера с произвольным числом команд на Си (разумеется).
Например: как написать вот такой конвейер: ls | cat | cat | ... | cat ? Спасибо!

ruslandh 20-12-2008 20:21 985770

Конвейер уже существует, что вы хотите реализовывать ?

Yevgenijz 24-01-2009 10:57 1017734

На C программа ls пишет printf("",...); или puts() в стандартный выходной поток stdout (его имя не упоминается, потомучто он по умолчанию) , затем операционная система(неважно какая: Win, Lin или UNIX(первоначально C разрабатывался для UNIX)) записывает эти данные во временный файл и подсовывает этот файл следующей программе конвейера в качестве входного потока "по умолчанию" stdin, далее программа cat берет из этого файла информацию операторами scanf(); gets(); getchar(); и т.п. и пишет данные в следующий выходной поток, ОС стирает предыдущий временный файл, а следующий cat уже из текущего временного файла считывает информацию и т.д.
Причем программа на Си "не знает" из какого файла берет информацию и в какой файл пишет, этим занимается ОС.
В своё время это считалось очень крутым достоинством UNIX.


Время: 18:12.

Время: 18:12.
© OSzone.net 2001-