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

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


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

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



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.
 
 Функция            Изменяет размещение сегмента данных в памяти.
 
 
 
 Синтаксис          #include<alloc.h>
 
                    char *sbrk(int incr);
 
 
 
 Файл, содержащий   alloc.h
 
 прототип
 
 
 
 Описание           Функция sbrk  добавляет  к  завершающему  значению
 
                    incr байт,  и соответственно выделяет память. incr
 
                    может быть и отрицательным,  в этом  случае  объем
 
                    выделенной памяти уменьшается.
 
 
 
                    В случае если для  выделения  памяти  недостаточно
 
                    свободного места,  sbrk завершается по ошибке и не
 
                    производит никаких действий.
 
 
 
 Возвращаемое       При успешном завершении sbrk возвращает старое
 
 значение           значение. При ошибке, sbrk возвращает -1 и
 
                    глобальной переменной errno присваивает значение:
 
 
 
                    ENOMEM - Недостаточно памяти.
 
 
 
 Переносимость      sbrk доступна   в   системах   UNIX.   Функция  не
 
                    совместима с Windows.
 
 
 
 Смотрите также     brk.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 #include<alloc.h>
 
 
 
 int main(void)
 
 {
 
    printf("Изменение выделенного объема памяти с помощью sbrk\n");
 
    printf("Перед вызовом sbrk свободны %lu байт.\n",
 
           (unsigned long)coreleft());
 
    sbrk(1000);
 
    printf("После вызова sbrk свободны %lu байт.\n",
 
           (unsigned long)coreleft());
 
    return 0;
 
 }


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

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




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



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


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