Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

freopen

 
 Функция            Связывет с потоком новый файл.
 
 
 
 Синтаксис          #include <stdio.h>
 
                    FILE * freopen(char * filename, char * mode,
 
                                FILE *stream);
 
 
 
 Файл, содержащий   stdio.h
 
 прототип
 
 
 
 Описание           Функция freopen замещает указанным файлом  открытый
 
                    поток   stream.  Функция  freopen  закрывает  файл,
 
                    связанный со  stream,  независимо  от  откраваемого
 
                    файла. Ее можно использовать для изменения потоков,
 
                    связанных с stdin, stdout или stderr.
 
 
 
                    Строка mode,  используемая в функции freopen, может
 
                    принимать следующие значения:
 
 
 
                    r - открытие файла только для чтения;
 
 
 
                    w - создание файла для записи;
 
 
 
                    а - присоединение;  открытие  для  записи  в  конец
 
                        файла  или  создание  для записи,  если файл не
 
                        существует;
 
 
 
                    r+ - открытие существующего  файла  для  обновления
 
                         (чтения и записи);
 
 
 
                    w+ - создание нового файла для изменения;
 
 
 
                    a+ - открытие  для  присоединения;  открытие  (или
 
                         создание,  если  файл   не   существует)   для
 
                         обновления в конец файла.
 
 
 
                    Если данный   файл   открывается  или  создается  в
 
                    текстовом режиме,  вы можете приписать символ  t  к
 
                    значению   параметра   mode   (rt,  w+t,  и  т.д.);
 
                    аналогично,  для спецификации бинарного  режима  вы
 
                    можете  к значению параметра mode добавить символ b
 
                    (wb,a+b, и т.д.).
 
 
 
                    Если в параметре mode отсутствуют символы t или  b,
 
                    режим   будет  определяться  глобальной  переменной
 
                    _fmode.  Если  переменная  _fmode  имеет   значение
 
                    O_BINARY,   файлы   будут  открываться  в  бинарном
 
                    режиме,  иначе,  если _fmode имеет значение O_TEXT,
 
                    файлы   открываются   в  текстовом  режиме.  Данные
 
                    константы O_... определены в файле fcntl.h.
 
 
 
                    При открытии  файла  в  режиме обновления (UPDATE),
 
                    над  результирующим  потоком  stream   могут   быть
 
                    выполнены как операции ввода,  так и вывода. Тем не
 
                    менее вывод не может следовать  непосредственно  за
 
                    вводом  без вмешательства функций fseek или rewind,
 
                    а также ввод без применения функций  fseek,  rewind
 
                    не  может  непосредственно следовать за выводом или
 
                    вводом, который встречает конец файла (EOF).
 
 
 
 Возвращаемое       При успешном завершении, freopen  возвращает
 
 значение           указатель на открытый поток stream. В случае
 
                    ошибки, функция возвращает ноль (NULL).
 
 
 
 Переносимость      freopen поддерживаeтся на системах UNIX
 
                    и совместима со стандартом ANSI C.
 
 
 
 Смотрите также     fclose, fdopen, fopen, open, setmode.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 
 
 int main(void)
 
 {
 
    /* перенаправить стандартный вывод в файл */
 
    if(freopen("OUTPUT.FIL","w",stdout) == NULL)
 
      fprintf(stderr,"Ошибка перенаправления потока\n");
 
    /* этот вывод будет осуществляться в файл */
 
    printf("этот вывод будет осуществляться в файл\n");
 
    /* закрыть стандартный вывод */
 
    close(stdout);
 
    return 0;
 
 }

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS