Показать полную графическую версию : Реализация конвейера на Си! NEED HELP!
Подскажите, пожалуйства алгоритм реализации конвейера с произвольным числом команд на Си (разумеется).
Например: как написать вот такой конвейер: ls | cat | cat | ... | cat ? Спасибо!
ruslandh
20-12-2008, 20:21
Конвейер уже существует, что вы хотите реализовывать ?
Yevgenijz
24-01-2009, 10:57
На C программа ls пишет printf("",...); или puts() в стандартный выходной поток stdout (его имя не упоминается, потомучто он по умолчанию) , затем операционная система(неважно какая: Win, Lin или UNIX(первоначально C разрабатывался для UNIX)) записывает эти данные во временный файл и подсовывает этот файл следующей программе конвейера в качестве входного потока "по умолчанию" stdin, далее программа cat берет из этого файла информацию операторами scanf(); gets(); getchar(); и т.п. и пишет данные в следующий выходной поток, ОС стирает предыдущий временный файл, а следующий cat уже из текущего временного файла считывает информацию и т.д.
Причем программа на Си "не знает" из какого файла берет информацию и в какой файл пишет, этим занимается ОС.
В своё время это считалось очень крутым достоинством UNIX.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC