[Powered by Google Translate] TOMMY: У цьому відео ми дізнаємося про перенаправлення і труб. До цих пір ми використовували такі функції, як Printf до висновок даних на термінал і функцій, таких як GetString дозволяє користувачеві вносити вклад у наше програми з допомогою клавіатури. Давайте швидко поглянемо на програму, яка отримує лінії введення від користувача, а потім виводить його. У рядку 7, ми за допомогою якого користувач рядок, а Потім в рядку 8, ми роздрукувавши його назад. Давайте скомпілювати і запустити нашу програму. Великий. Рядок ми надали була луною до нас на термінал. Це сталося тому, Е функція писав Потік називається стандартний висновок, чи з-т-д-аут. Коли щось виводиться на стандартний вивід, то за замовчуванням відображатися в терміналі. Так що все добре, але що, якщо замість того, щоб просто відображенням рядки, ми хотіли зберегти його в файл? Наприклад, ми могли б точно пам'ятаю, що наш Програма зробив, коли ми дали йому певний вхід пізніше. Один підхід був би зробити це в нашій програмі C, використовуючи деякі спеціальні функції для запису файлів, які ми будемо см. в інше відео. Ще простіше, хоча-б якось перенаправити стандартний вивід у файл. Таким чином, коли Printf пише в стандартний висновок, зміст буде бути записані у файл, а не відображатися в терміналі. Ми можемо зробити це, додавши знак більше, а потім на ім'я файлу, в команді ми використовуємо, щоб виконати нашу програму. Таким чином, замість того, щоб просто виконання. / Перенаправлення, ми можемо запустіть. / перенаправлення, а потім знак більше, а потім Файл, як file.txt. Давайте подивимося, що відбувається. OK. Зверніть увагу, що на цей раз нічого не відображається на терміналі, але ми не змінили зміст наших C програмою на всіх. Давайте тепер розглянемо вміст цього каталогу з лат. Добре. Тепер у нас є новий файл в нашому каталозі з іменем file.txt, , Яка є ім'я файлу ми поставили, коли ми запустили наш Перенаправлення програми. Давайте відкривати file.txt. І ось, ми бачимо, що стандартний вивід з перенаправити було записуються в файл з ім'ям file.txt. Так що давайте виконання попередньої команди знову, але поставки інший вхід в цей раз. Добре. Давайте поглянемо на file.txt зараз. Ми бачимо тут, що файл був перезаписаний, так що наше Оригінальний вхід більше не існує. Якщо ми замість цього хочете додати в цей файл, поставивши нові вхід нижче існуючого вмісту файлу, ми можемо використовувати два більше, ніж знаки, а не тільки один. Давайте спробуємо. Тепер, якщо ми відкриємо file.txt знову ми бачимо, як наші вхідних ліній. У деяких випадках, ми могли б відмовитися від будь-якого Вихід нашої програми. Замість того, щоб писати висновок у файл, а потім видалення Файл, коли ми покінчимо з цим, ми можемо написати в спеціальній файл / Dev / нуль. Коли-небудь записати в / dev/null-- або просто devnull для стислості - вона автоматично видаляється. Так що думаю про devnull як чорна діра для ваших даних. Отже, ми бачили, як знак більше може перенаправити стандартний висновок, давайте подивимося, як ми можемо переспрямувати стандартний В - або з-т-д-в - Аналог стандартний вивід. У той час як функції, як Printf записи в потік називається стандартний висновок, GetString та аналогічні функції читання з потоку називається стандартного вводу, який, за замовчуванням, є потік символи, що вводяться з клавіатури. Ми можемо перенаправити стандартний ввід використанням менш знайомий, а потім по імені файлу. Тепер, замість запиту користувача для входу в термінал, програма відкриє файл ми вказали і використовувати його лінії в якості вхідних даних. Давайте подивимося, що відбувається. Великий. У першому рядку file.txt була надрукована в термінал тому, що ми називаємо GetString раз. Якщо б ми мали ще один виклик GetString в нашій програмі, Наступний рядок file.txt було б використовувати в якості вхід на цей заклик. Знову ж таки, ми не змінили нашу програму C на всіх. Ми тільки змінити те, як ми його запуску. А також пам'ятайте, що ми не стандартний вивід перенаправлено на цей раз, так що на виході з програми все ще відображатися у вікні терміналу. Ми можемо, звичайно, перенаправити стандартний ввід і стандартний висновок, як це. Тепер, file2.txt містить перший рядок file.txt. Таким чином, використання цих операторів, ми були в змозі прочитати і записи з текстових файлів. Тепер, давайте подивимося, як ми можемо використовувати висновок однієї програми, вхід в іншу програму. Отже, ось ще один простий програми C Я були тут називають hello.c. Як ви можете бачити, це просто виводить "Привіт там! "для користувача. Якщо я хочу перенаправити використовувати як вхідні вихід привіт - інша програма - Я спочатку може перенаправити стандартний вивід привіт у файл з ім'ям input.txt, а потім перенаправити потік введення перенаправлення на тому ж файл - input.txt. Так що я можу зробити. / Привіт> input.txt. Натисніть клавішу Enter, щоб виконати це. Послідував. / Переадресація < input.txt, і виконати це. Таким чином, ми можемо скоротити це небагато крапкою з комою, що дозволяє нам для запуску двох або більше команд на тій же лінії. Тому я можу сказати,. / Привіт> input.txt, крапка з комою, . / Переадресація Final.txt. Таким чином, якщо ми відкриваємо final.txt, у нас є саме те, що ми були шукає: Список унікальні імена в алфавітному порядку, збережені в текстовому файлі. До речі, ми також могли б сказати роду < students.txt | Uniq> final.txt робити те, те ж саме, використовуючи кожен з операторів ми бачили в це відео. Мене звати Томмі, і це CS50.