Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 12
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 10:57, 24-01-2009 | #3