В языке программирования C для перенаправления вывода в несколько файлов можно использовать функцию freopen()
. Эта функция позволяет перенаправить поток данных в заданный файл.
Вот пример, демонстрирующий, как использовать freopen()
для перенаправления потока вывода в несколько файлов:
#include <stdio.h> int main() { FILE *file1, *file2; // Открытие первого файла для записи file1 = freopen("file1.txt", "w", stdout); if(file1 == NULL) { printf("Не удалось открыть file1.txtn"); return 1; } // Вывод данных в первый файл printf("Эта строка будет записана в file1.txtn"); // Открытие второго файла для записи file2 = freopen("file2.txt", "w", stdout); if(file2 == NULL) { printf("Не удалось открыть file2.txtn"); return 1; } // Вывод данных во второй файл printf("Эта строка будет записана в file2.txtn"); // Отключение перенаправления freopen("/dev/tty", "w", stdout); // Вывод данных в стандартный вывод printf("Эта строка будет выведена на экранn"); // Закрытие файлов fclose(file1); fclose(file2); return 0; }
В этом примере программа сначала открывает файл "file1.txt" для записи, затем перенаправляет поток вывода в этот файл с помощью freopen()
. Затем программа выводит строку в файл "file1.txt". Затем программа открывает файл "file2.txt" для записи и перенаправляет поток вывода в этот файл, а затем выводит строку в файл "file2.txt". После этого программа прекращает перенаправление, используя freopen("/dev/tty", "w", stdout)
, чтобы вернуть вывод на стандартный вывод. Наконец, программа выводит строку на стандартный вывод и закрывает оба файла.
Таким образом, при выполнении этой программы будут созданы файлы "file1.txt" и "file2.txt", и в каждом из них будет записана соответствующая строка.