Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

sbrk - увеличить сегмент данных

Описание

      sbrk пытается расширить сегмент данных на число байтов,
      указанных в count. При успешном завершении возвращает-
      ся указатель на добавленную память, в противном случае
      возвращается -1.  Для T,S и M моделей памяти,  если не
      была объявлена переменная _okbigbuf,  то вся доступная
      память, размером до 64 Кб,  присоединяется при запуске
      программы и sbrk будет всегда сбоить  (т.е. возвращать
      -1). Если переменная _okbigbuf объявлена в программе и
      инициализирована 0,  то в  'куче'  размещаетсят только
      требуемая программе память и здесь полезна sbrk.
      Для C и L моделей памяти,  если sbrk() не может расши-
      рить сегмент данных,  она будет пытаться  присоединить
      новый сегмент.
            sbrk()  является общей частью функций  calloc(),
            malloc() и realloc().
            Приложениям  следует  избегать  использовать эту
            функцию.

Использование

      void *sbrk(unsigned count);

Возвращаемое значение

      Если не хватило  памяти  для  удовлетворения  запроса,
      sbrk возвращает -1  и  устанавливает   errno.  В про-
      тивном случае возвращается указатель на блок памяти.

Пример

      #include <string.h>
      #include <stdio.h>
      void *sbrk(int);
      main()
      {
        unsigned int count = 100;
        char *ptr;
        ptr = sbrk(count);
        if (ptr == (char *)-1)
            {
              perror("No available space for sbrk\n");
              return;
            }
        strcpy(ptr, "String of data:");
        strcat(ptr, "another string added\n");
        fputs(ptr, stdout);
      }

Рекомендация

      Смотрите также  calloc, free, malloc, realloc.

оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог