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

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


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

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



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

setbuf

 
 Функция            Назначает буфер для потока stream.
 
 
 
 Синтаксис          #include <stdio.h>
 
                    void setbuf(FILE *stream, char *buf);
 
 
 
 Файл, содержащий   stdio.h
 
 прототип
 
 
 
 Описание           Функция setbuf     выделяет    буфер    buf    для
 
                    использования в операциях  ввода/вывода  -  вместо
 
                    автоматически   выделяемого   буфера.   Он   будет
 
                    использоваться только после того, как данный поток
 
                    stream будет открыт.
 
 
 
                    При использовании функции  setbuf,  если  параметр
 
                    buf = NULL,  ввод/вывод производится без буфера; в
 
                    противном случае буфер используется.
 
 
 
                    Буфер должен быть длиной  BUFSIZE  байтов  (данная
 
                    константа определяется в файле stdio.h).
 
 
 
                    Стандартный ввод   и   вывод  stdin  и  stdout  не
 
                    используют   буферов,    если    они    не    были
 
                    переназначены;  в  противном случае,  ввод и вывод
 
                    производиться с буферизацией.
 
 
 
                    unbuffered (небуферизованный ввод/вывод) означает,
 
                    что   символы,  записываемые  в  поток,  поступают
 
                    непосредственно в файл или  на  устройство;  в  то
 
                    время  как  buffered  (буферизованный  ввод/вывод)
 
                    означает,  что  символы  накапливаются   и   затем
 
                    записываются, как блок.
 
 
 
                    Функция setbuf  может  привести  к  непредвиденным
 
                    результатам,  если  она  вызывается   для   потока
 
                    stream,  причем не следует немедленно за операцией
 
                    открытия или вызовом функции fseek.  Вызов функции
 
                    setbuf после того,  как поток stream обработан без
 
                    буферов, разрешен, и не вызовет ошибок.
 
 
 
                    Наиболее распространенной причиной ошибки является
 
                    размещение    буфера,    в    качестве   automatiс
 
                    (локальной) переменной  и  затем  попытка  закрыть
 
                    файл до выхода из функции,  в которой был объявлен
 
                    буфер.
 
 
 
 Возвращаемое       Нет.
 
 значение
 
 
 
 Переносимость      Функция поддерживаются на системах UNIX и стан-
 
                    дартом ANSI C.
 
 
 
 Смотрите также     fflush, fopen, fseek, setvbuf.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 
 
 /* BUFSIZE определено в stdio.h */
 
 char buf[BUFSIZE];
 
 
 
 int main(void)
 
 {
 
    int i;
 
    /* подключить буфер к стандартному потоку */
 
    setbuf(stdout,buf);
 
    /* поместить в буфер символы */
 
    puts("Это тест буферизованного вывода.\n");
 
    puts("Этот вывод осуществляется в buf\n");
 
    puts("и вы ничего не увидите, пока буффер не заполнится\n");
 
    puts("или вы не сбросите его.\n");
 
    /* сбросить поток */
 
    fflush(stdout);
 
    return 0;
 
 }


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

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




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



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


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