Библиотека cstdlib c что это
stdlib.h
Содержание
Функции
Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, являющийся константным нуль-указателем, который гарантированно указывает на некорректный адрес памяти.
Варианты
NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:
Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, привёденным к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.
size_t
Настоящий тип size_t платформо-независим; распространенной ошибкой является подразумевать под size_t беззнаковое целое ( unsigned int ), что может привести к ошибкам программирования, [3] причём в первую очередь это касается 64-битных архитектур.
div_t, ldiv_t
Нестандартные функции
itoa — общая функция, входящая во множество реализаций stdlib.h, но не определяемая стандартом. Возможно, её так часто включают в библиотеки благодаря её описанию в книге «Язык программирования Си». Аналогичного эффекта можно добиться при помощи функции sprintf, которая определена в стандарте.
См. также
Напишите отзыв о статье «Stdlib.h»
Примечания
Ссылки
Отрывок, характеризующий Stdlib.h
Если допустить, как то делают историки, что великие люди ведут человечество к достижению известных целей, состоящих или в величии России или Франции, или в равновесии Европы, или в разнесении идей революции, или в общем прогрессе, или в чем бы то ни было, то невозможно объяснить явлений истории без понятий о случае и о гении.
Если цель европейских войн начала нынешнего столетия состояла в величии России, то эта цель могла быть достигнута без всех предшествовавших войн и без нашествия. Если цель – величие Франции, то эта цель могла быть достигнута и без революции, и без империи. Если цель – распространение идей, то книгопечатание исполнило бы это гораздо лучше, чем солдаты. Если цель – прогресс цивилизации, то весьма легко предположить, что, кроме истребления людей и их богатств, есть другие более целесообразные пути для распространения цивилизации.
Почему же это случилось так, а не иначе?
Потому что это так случилось. «Случай сделал положение; гений воспользовался им», – говорит история.
Но что такое случай? Что такое гений?
Слова случай и гений не обозначают ничего действительно существующего и потому не могут быть определены. Слова эти только обозначают известную степень понимания явлений. Я не знаю, почему происходит такое то явление; думаю, что не могу знать; потому не хочу знать и говорю: случай. Я вижу силу, производящую несоразмерное с общечеловеческими свойствами действие; не понимаю, почему это происходит, и говорю: гений.
Для стада баранов тот баран, который каждый вечер отгоняется овчаром в особый денник к корму и становится вдвое толще других, должен казаться гением. И то обстоятельство, что каждый вечер именно этот самый баран попадает не в общую овчарню, а в особый денник к овсу, и что этот, именно этот самый баран, облитый жиром, убивается на мясо, должно представляться поразительным соединением гениальности с целым рядом необычайных случайностей.
Но баранам стоит только перестать думать, что все, что делается с ними, происходит только для достижения их бараньих целей; стоит допустить, что происходящие с ними события могут иметь и непонятные для них цели, – и они тотчас же увидят единство, последовательность в том, что происходит с откармливаемым бараном. Ежели они и не будут знать, для какой цели он откармливался, то, по крайней мере, они будут знать, что все случившееся с бараном случилось не нечаянно, и им уже не будет нужды в понятии ни о случае, ни о гении.
Только отрешившись от знаний близкой, понятной цели и признав, что конечная цель нам недоступна, мы увидим последовательность и целесообразность в жизни исторических лиц; нам откроется причина того несоразмерного с общечеловеческими свойствами действия, которое они производят, и не нужны будут нам слова случай и гений.
Стоит только признать, что цель волнений европейских народов нам неизвестна, а известны только факты, состоящие в убийствах, сначала во Франции, потом в Италии, в Африке, в Пруссии, в Австрии, в Испании, в России, и что движения с запада на восток и с востока на запад составляют сущность и цель этих событий, и нам не только не нужно будет видеть исключительность и гениальность в характерах Наполеона и Александра, но нельзя будет представить себе эти лица иначе, как такими же людьми, как и все остальные; и не только не нужно будет объяснять случайностию тех мелких событий, которые сделали этих людей тем, чем они были, но будет ясно, что все эти мелкие события были необходимы.
Отрешившись от знания конечной цели, мы ясно поймем, что точно так же, как ни к одному растению нельзя придумать других, более соответственных ему, цвета и семени, чем те, которые оно производит, точно так же невозможно придумать других двух людей, со всем их прошедшим, которое соответствовало бы до такой степени, до таких мельчайших подробностей тому назначению, которое им предлежало исполнить.
Основной, существенный смысл европейских событий начала нынешнего столетия есть воинственное движение масс европейских народов с запада на восток и потом с востока на запад. Первым зачинщиком этого движения было движение с запада на восток. Для того чтобы народы запада могли совершить то воинственное движение до Москвы, которое они совершили, необходимо было: 1) чтобы они сложились в воинственную группу такой величины, которая была бы в состоянии вынести столкновение с воинственной группой востока; 2) чтобы они отрешились от всех установившихся преданий и привычек и 3) чтобы, совершая свое воинственное движение, они имели во главе своей человека, который, и для себя и для них, мог бы оправдывать имеющие совершиться обманы, грабежи и убийства, которые сопутствовали этому движению.
И начиная с французской революции разрушается старая, недостаточно великая группа; уничтожаются старые привычки и предания; вырабатываются, шаг за шагом, группа новых размеров, новые привычки и предания, и приготовляется тот человек, который должен стоять во главе будущего движения и нести на себе всю ответственность имеющего совершиться.
Человек без убеждений, без привычек, без преданий, без имени, даже не француз, самыми, кажется, странными случайностями продвигается между всеми волнующими Францию партиями и, не приставая ни к одной из них, выносится на заметное место.
Stdlib.h
stdlib.h
Содержание
Member functions
Члены stdlib.h можно разделить на следующие категории: преобразования типов, управление памятью, контроль процесса, сортировка и поиск, математика.
Имя | Описание |
---|---|
Преобразование типов | |
atof | строка в число двойной точности (НЕ float) |
atoi | строка в целое число |
atol | строка в длинное целое число |
strtod | строка в число двойной точности (double) |
strtol | строка в длинное целое число |
strtoul | строка в беззнаковое длинное целое число (unsigned long int) |
Генерация псевдослучайных последовательностей | |
rand | генерирует псевдослучайное значение |
srand | устанавливает начальное значение генератора псевдослучайных чисел |
Выделение и освобождение памяти | |
malloc calloc realloc | выделяет память из кучи |
free | освобождает память обратно в кучу |
Контроль процесса выполнения программы | |
abort | некорректное завершение выполнения |
atexit | регистрирует обратный вызов функции для выхода из программы |
exit | завершает выполнение программы |
getenv | извлекает переменные окружения |
system | выполняет внешнюю команду |
Сортировка и поиск | |
bsearch | двоичный поиск в массиве |
qsort | сортировка массива |
Математика | |
abs labs | абсолютная величина |
div ldiv | деление целых чисел |
Многобайтовые операции/ широкие символы | |
mblen | размер многобайтовых символов [1] |
mbtowc, wctomb, mbstowcs, wcstombs | преобразование многобайтовых и широких символов [2] |
Члены-константы
Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, который порождает константный нуль-указатель, и представляет собой значение указателя, гарантирующего корректность указателя, не указывающего на действительный (корректный) адрес в памяти.
Варианты
NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:
Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, приведенным к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.
Типы членов-данных
size_t
Настоящий тип size_t платформо-независим; распространенной ошибкой является подразумевание size_t как беззнаковое целое ( unsigned int ), что может привести к ошибкам программирования, [4] причем в первую очередь это касается 64-битных архитектур.
div_t, ldiv_t
Нестандартные функции
itoa — общая функция, входящая во множество реализаций stdlib.h, но стандарт не определяет функцию. Возможно, ее так часто включают в библиотеки благодаря ее описанию в книге Язык программирования Си. Аналогичного эффекта можно добиться при помощи функции sprintf, которая определена в стандарте.
См. также
Примечания
Ссылки
Полезное
Смотреть что такое «Stdlib.h» в других словарях:
Stdlib.h — is the header of the general purpose standard library of C programming language which includes functions involving memory allocation, process control, conversions and others. It is compatible with C++ and is known as cstdlib in C++. The name… … Wikipedia
Stdlib.h — Saltar a navegación, búsqueda stdlib.h (std lib: standar library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para… … Wikipedia Español
stdlib.h — (std lib: standard library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para gestión de memoria dinámica, control de… … Wikipedia Español
stdlib.h — Стандартная библиотека языка программирования С assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stdbool.h stddef.h stdint.h … Википедия
Dao (programming language) — Infobox programming language name = Dao paradigm = Multi paradigm year = 2006 designer = Limin Fu latest release version = dao 1.0 preview latest release date = 2008 04 25 typing = statically typed or dynamically typed influenced by = C++, Lua,… … Wikipedia
Strtod — is a C language function that converts an ASCII string to a double precision value. It is utilized via the following sequence:double strtod(const char *restrict, char **restrict); [OpenGroup Technical Standards Documentation] Strtod is included… … Wikipedia
strtod — (сокр. от string to double, «строку в число двойной точности») функция языка Си, конвертирующая символ строки в число с плавающей запятой двойной точности. Определение функции имеет вид: double strtod ( const char * str, char ** endptr… … Википедия
Memory leak — A memory leak, in computer science (or leakage, in this context), occurs when a computer program consumes memory but is unable to release it back to the operating system. In object oriented programming, a memory leak happens when an object is… … Wikipedia
Библиотека cstdlib c что это
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Includes the C Standard library header and adds the associated names to the std namespace. Including this header ensures that the names declared using external linkage in the C standard library header are declared in the std namespace.
Requirements
Header:
Namespace: std
Namespace and Macros
Exposition only functions
Start and termination functions
Function | Description |
---|---|
_Exit | Terminates program without using destructors or registered functions. |
abort | Terminates program without using destructors. |
atexit | Registers function for program termination. |
exit | Destroys objects with thread and static storage, then returns control. |
at_quick_exit | Registers function without arguments for program termination. |
quick_exit | Registers function with preserved objects for program termination. |
getenv | See C standard library reference. |
system | See C standard library reference. |
_Exit
Remarks
abort
Remarks
at_quick_exit
Return Value
Zero if the registration succeeds, non-zero if it fails.
Remarks
The at_quick_exit() functions register a function func, which is called without arguments when quick_exit is called. A call to at_quick_exit() that doesn’t happen before all calls to quick_exit may not succeed. The at_quick_exit() functions don’t introduce a data race. The order of registration may be indeterminate if at_quick_exit was called from more than one thread. Since at_quick_exit registrations are distinct from the atexit registrations, applications may need to call both registration functions using the same argument. MSVC supports the registration of at least 32 functions.
atexit
Remarks
The atexit() functions register the function pointed to by func to be called without arguments at normal program termination. A call to atexit() that doesn’t happen before a call to exit() may not succeed. The atexit() functions don’t introduce a data race.
Return Value
Returns zero if the registration succeeds, nonzero if it fails.
Remarks
First, objects with thread storage duration and associated with the current thread are destroyed.
Next, all open C streams (as mediated by the function signatures declared in ) with unwritten buffered data are flushed, all open C streams are closed, and all files created by calling tmpfile() are removed.
Finally, control is returned to the host environment. When status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned. MSVC returns a value of zero. If status is EXIT_FAILURE, MSVC returns a value of 3. Otherwise, MSVC returns the status parameter value.
getenv
quick_exit
Remarks
system
Memory allocation functions
Remarks
Numeric string conversions
Remarks
These functions have the semantics specified in the C standard library.
Multibyte / wide string and character conversion functions
Remarks
These functions have the semantics specified in the C standard library.
Algorithm functions
Remarks
These functions have the semantics specified in the C standard library.
Low-quality random number generation functions
Remarks
These functions have the semantics specified in the C standard library.
Absolute values
Remarks
These functions have the semantics specified in the C standard library.
Integer division
Remarks
These functions have the semantics specified in the C standard library.
Библиотека cstdlib c что это
В этой главе описаны вспомогательные функции, которые могут быть использованы в разнообразных программах. Соответствующие описания содержатся в файле stdlib.h.
Перед завершением программы abort генерирует сигнал sigabrt (используя raise(sigabrt)).
Если Вы использовали signal для установки обработчика данного сигнала, то этот обработчик может взять управление на себя, предотвратив прекращение работы программы.
abort не выполняет каких-либо действий, связанных с очисткой потоков или файлов (это может сделать среда, в которой работает программа; если она этого не делает, то Вы можете организовать для своей программы свою собственную очистку при помощи обработчика сигнала sigabrt).
abort не возвращает yпpавление вызвавшей программе.
Стандарт ANSI требует наличия процедуры abort.
Требуются процедуры ОС getpid и kill.
Похожая функция labs используется для возвращения значений типа long, а не int.
Резyльтат является неотpицательным целым.
Стандарт ANSI требует наличия функции abs.
Не требуется никаких пpоцедyp ОС.
Когда expression ложно (ноль), assert вызывает abort, предварительно выведя сообщение, показывающие, какая и где произошла ошибка:
assert, так же как и его поведение при определении NDEBUG, определяется стандартом ANSI.
Требуются процедуры ОС (только если использования assert не исключены) close, fstat, getpid, isatty, kill, lseek, read, sbrk, write.
Эти функции помещаются в lifo-стек; таким образом последняя из перечисленных функций будет выполнена первой при выходе из программы.
Не предусмотрено никаких ограничений на количество внесенных в этот список функций; после внесения каждых 32 функций в список, atexit вызывает malloc для выделения памяти под следующую часть списка. Место для первых 32 элементов списка выделяется статически, так что Вы всегда можете рассчитывать на то, что по крайней мере 32 функции могут быть внесены в список.
Стандарт ANSI требует наличия функции atexit и определяет безусловную возможность внесения в список по крайней мере 32 функций.
Требуются пpоцедypы ОС close, fstat, isatty, lseek, read, sbrk, write.
Эта функция разбирает строку символов s, выделяя подстроку, которая может быть преобразована в число с плавающей точкой. Эти подстроки должны удовлетворять формату
atof возвращает значение преобразованной подстроки, если она есть, как double; или 0.0, если никакого преобразования не было выполнено. Если правильное значение вышло за границы представляемых значений, то возвращается плюс или минус huge_val и в errno записывается erange. Если правильное значение слишком мало, то возвращается 0.0 и erange сохраняется в errno.
atoff подчиняется тем же правилам, что и atof, за исключением того, что выдает float.
Стандарт ANSI требует наличия функции atof. atof, atoi и atol относятся к тому же типу, что и strod и strol, но интенсивно используются в существующих программах. Эти функции менее надежны, но могут исполняться быстрее, если известно, что аргумент находится в допустимом диапазоне.
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
Эти функции возвращают преобразованное значение, если оно есть. Если никакого преобразования не было выполнено, то возвращается 0.
Стандарт ANSI требует наличия функции atoi.
Никаких процедур ОС не требуется.
atol(s) реализован как strtol(s,NULL,10).
Стандарт ANSI требует наличия функции atol.
Никаких процедур ОС не требуется.
Массив должен быть отсортирован в возрастающем порядке относительно функции сравнения compar (которая передается как последний аргумент bsearch).
Вы должны определить функцию сравнения (*compar), имеющую два аргумента; ее результат должен быть отрицательным, если первый аргумент меньше второго, ноль, если оба аргумента совпадают и положительным, если первый аргумент больше второго (где «меньше» и «больше» относятся к произвольному подходящему порядку).
Эта функция возвращает указатель на элемент array, который сравним с key. Если подходящих элементов несколько, то результат может быть указателем на любой из них.
Стандарт ANSI требует наличия функции bsearch.
Никаких процедур ОС не требуется.
Выделяемая при помощи calloc память берется из области, используемой malloc, но блоки памяти при инициализации заполняются нулями. (Для избежания накладных расходов вpемени для инициализации выделяемой памяти использyйте malloc.)
В случае успешного выполнения функции выдается указатель на выделенное пространство, в противном случае возвращается NULL.
Стандарт ANSI требует наличия функции calloc.
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
Результат представляется при помощи структуры
Когда d равно 0, поле quot результата имеет тот же знак, что и n и наибольшее представимое его типом значение.
Для деления значений типа long, а не int, используйте похожую функцию ldiv.
Стандарт ANSI требует наличия функции div, но обработка нулевого d не определена стандартом.
Никаких процедур ОС не требуется.
Единственнон отличие между ecvt и fcvt состоит в интерпретации второго аргумента (chars или decimals). Для ecvt второй аргумент chars определяет общее число выводимых знаков (которое является также числом значащих знаков в форматированной строке, поскольку эти функции выводят только цифры). Для fcvt второй аргумент decimals определяет число знаков после десятичной точки, все знаки целых частей val выводятся всегда.
Все четыре функции возвращают указатель на строку, содержащую текстовое представление val.
Ни одна из этих функций не определена в ANSI C.
Требуются пpоцедypы ОС close, fstat, isatty, lseek, read, sbrk, write.
В результате выдается указатель на отформатированное представление val (совпадающий с аргументом buf).
Ни одна из этих функций не определена в стандарте ANSI C.
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
Единственнон отличие между ecvtbuf и fcvtbuf состоит в интерпретации второго аргумента (chars или decimals). Для ecvtbuf второй аргумент chars определяет общее число выводимых знаков (которое является также числом значащих знаков в форматированной строке, поскольку эти функции выводят только цифры). Для fcvtbuf второй аргумент decimals определяет число знаков после десятичной точки, все знаки целых частей val выводятся всегда.
Все четыре функции возвращают указатель buf на строку, содержащую текстовое представление val.
Стандарт ANSI не требует наличия ни одной из этих функций.
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
exit производит два вида очищающих операций перед завершением выполнения программы. Сначала вызывается определенные приложением функции, которые Вы можете перечислить при помощи atexit. Во-вторых, очищаются файлы и потоки: все выводимые данные доставляются операционной системе, каждый открытый файл или поток закрывается, а файлы, созданные с помощью tmpfile, уничтожаются.
exit не возвращает yпpавление вызвавшей пpогpамме.
Стандарт ANSI требует наличия функции exit, также как и величин exit_success и exit_failure.
Требуется процедура ОС _exit.
Возвращается указатель на (строку) значение переменной среды или NULL, если такой переменной среды нет.
Стандарт ANSI требует наличия функции getenv, но правила наименования переменных среды могут меняться в зависимости от системы.
getenv требует наличия глобального указателя environ.
Похожая фyнкция abs обpабатывает и выдает значения типа int, а не длинные числа.
В pезyльтате полyчается неотpицательное длинное целое.
Стандарт ANSI требует наличия функции labs.
Никаких процедур ОС не требуется.
Результат представляется при помощи структуры
Когда d ноль, поле quot имеет тот же знак, что и n, и наибольший представимый модуль.
Для деления значений типа int, а не long, используйте похожую функцию div.
Стандарт ANSI требует наличия функции ldiv, но обработка нулевого d не определена стандартом.
Никаких процедур ОС не требуется.
Используйте malloc для запроса места под объект размером по крайней мере nbytes байт. Если пространство доступно, то malloc возвращает указатель на выделенное место в памяти.
Если у вас уже есть выделенное malloc место в памяти, но Вам уже не нужно все имеющееся пространство, Вы можете уменьшить использование памяти, вызвав realloc, задав ему указатель на объект и его новый размер как параметры. realloc гарантирует, что содержимое меньшего объекта будет соответствовать началу содержимого исходного объекта.
Аналогично, если Вам нyжно отвести для объекта больше памяти, использyйте realloc для запpоса большего количества памяти, в этом слyчае realloc также гаpантиpyет соответствие начала нового объекта стаpомy объектy.
Если Вам больше не тpебyется объект, выделенный пpи помощи malloc или realloc (или фyнкцией calloc), то занимаемое им место можно возвpатить системе, вызвав free, задав адpес объекта в качестве аpгyмента. Также для этого можно использовать realloc, задав 0 в качестве аpгyмента nbytes.
malloc возвращает указатель на выделенное пространство нужного размера, если оно было найдено, и NULL в противном случае. Если ваше приложение должно сгенерировать пустой объект, то Вы можете использовать для этой цели malloc(0).
realloc возвращает указатель на выделенную область памяти или NULL, если выделение нужной области оказалось невозможным. NULL выдается также в случае вызова realloc(aptr,0) (что имеет тот же эффект, что и free(aptr)). Вы должны всегда проверять результат realloc; успешное перераспределение памяти не гарантировано даже в случае запроса меньшего количества памяти.
free не выдает никакого результата.
Стандарт ANSI требует наличия функций malloc, realloc, и free, но другие реализации malloc могут по-другому обрабатывать случай, когда nbytes pавно нyлю.
Требуются процедуры ОС sbrk, write (если warn_vlimit).
Каждый вызов mbtowc копиpyет один знак из *s в *pwc, если только s не является yказателем NULL.
В этой реализации аргумент n игнорируется.
Стандарт ANSI требует наличия функции mbtowc. Однако в деталях реализации возникают различия.
mbtowc не требует никаких процедур ОС.
Вы должны задать указатель на функцию сравнения, используя аргумент compar. (Это позволяет сортировать объекты с произвольными свойствами.) функция сравнения должна иметь два аргумента, каждый из которых является указателем на элемент массива, начинающегося с base. Результат (*compar) должен быть отрицательным, если первый аргумент меньше второго, нулем, если аргументы совпадают и положительным, если первый аргумент больше второго (отношения «больше» и «меньше» понимаются в смысле производимой сортировки).
Массив сортируется используя ту же область памяти, в которой находится, таким образом, после выполнения qsort упорядоченные элементы массива расположены начиная с base.
Qsort не возвращает yпpавление вызвавшей пpогpамме.
Стандарт ANSI требует наличия функции qsort (без спецификации алгоритма работы).
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
Вы можете задать random seed используя srand; эта функция сохраняет свой аргумент в статической переменной, используемой rand. Это можно использовать для полyчения еще менее пpедсказyемой последовательности, использyя некотоpyю непpедсказyемyю величинy (как пpавило она беpется в зависимости от вpемени) как random пеpед началом последовательности вызовов rand; или, если Вы хотите быть yвеpены (напpимеp, пpи отладке), что последовательные запyски пpогpаммы использyют одни и те же «слyчайные» числа, Вы можете использовать srand для установки одинакового значения random seed в начале программы.
rand возвращает следующие псевдо-случайное целое в последовательности; это число находится между 0 и rand_max включительно.
srand не возвращает yпpавление вызвавшей пpогpамме
Стандарт ANSI требует наличия функции rand, но алгоритм для генерации псевдо-случайных чисел не определен и даже использование одного и то же значение random seed не может обеспечивать одинаковые pезyльтаты на pазных машинах.
rand не требует никаких процедур ОС.
Эта реализация возвращает ближайшее к данному десятичному машинное число. Округление производится используя правило «IEEE round-even rule».
strtod возвращает преобразованное значение подстроки, если оно есть. Если преобразование не может быть выполнен, то возвращается 0. Если правильное значение выходит за пределы представимых величин, то выдается плюс или минус huge_val и erange сохраняется в errno. Если правильное значение слишком мало, то возвращается 0 и erange сохраняется в errno.
Требуются процедуры ОС close, fstat, isatty, lseek, read, sbrk, write.
Если значение base равно 0, то существенная строка рассматривается как обычная целая константа c: необязательный знак, возможный признак шестнадцатиричной системы счисления и само число. Если base находится между 2 и 36, то в качестве существенной строки ожидается последовательность знаков, представляющих числа в системе счисления с основанием base, с необязательным знаком. Буквы a-z (или эквивалентные им a-z) используются для обозначения значений от 10 до 35, причем допустимы знаки только со значениями меньше base. Если base равно 16, то вначале допустимо наличие 0x.
Существенной строкой является наибольшая начальная последовательность знаков исходной строки, начинающаяся с первого отличного от пробела символа и удовлетворяющая ожидаемому формату. Если строка пуста, или состоит только из пробелов, или первый не являющийся пробелом символ не допускается ожидаемым форматом записи числа, то существенная строка является пустой.
Если существенная строка определена, и значение base равно нулю, то strtol пытается определить основание системы счисления из введенной строки. Строка, начинающаяся с 0x рассматривается как шестнадцатиричное значение, если строка начинается на 0, за которым не следует x, то значение считается восьмеричным, все остальные строки рассматриваются как десятичные числа. Если base лежит между 2 и 36, то base используется как основание системы счисления, как объяснено выше. Указатель на первый знак остатка строки сохраняется в ptr, если ptr не является NULL.
Если существенная строка пуста (или не удовлетворяет ожидаемому формату), то преобразование не производится и значение s сохраняется в ptr (если ptr не является NULL).
strtol возвращает преобразованное значение, если оно получено. В противном случае возвращается 0.
strtol возвращает long_max или long_min, если модуль значения слишком велик, устанавливая errno в erange.
Стандарт ANSI требует наличия функции strtol.
Никаких процедур ОС не требуется.
Если значение base равно 0, то существенная строка рассматривается как обычная целая константа c (за исключением невозможности присутствия знака): само число и, возможно, признак шестнадцатиричной системы счисления перед ним. Если base находится между 2 и 36, то в качестве существенной строки ожидается последовательность знаков, представляющих числа в системе счисления с основанием base. Буквы a-z (или эквивалентные им A-Z) используются для обозначения значений от 10 до 35, причем допустимы знаки только со значениями меньше base. Если base равно 16, то вначале допустимо наличие 0x.
Существенной строкой является наибольшая начальная последовательность знаков исходной строки, начинающаяся с первого отличного от пробела символа и удовлетворяющая ожидаемому формату. Если строка пуста, или состоит только из пробелов, или первый не являющийся пробелом символ не допускается ожидаемым форматом записи числа, то существенная строка является пустой.
Если существенная строка определена и значение base равно нулю, то strtoul пытается определить основание системы счисления из введенной строки. Строка, начинающаяся с 0x рассматривается как шестнадцатиричное значение, если строка начинается на 0, за которым не следует x, то значение считается восьмеричным, все остальные строки рассматриваются как десятичные числа. Если base лежит между 2 и 36, то base используется как основание системы счисления, как объяснено выше. Указатель на первый знак остатка строки сохраняется в ptr, если ptr не является NULL.
Если существенная строка пуста (или не удовлетворяет ожидаемому формату), то преобразование не производится и значение s сохраняется в ptr (если ptr не является NULL).
strtoul возвращает преобразованное значение, если оно получено. В противном случае возвращается 0.
strtoul возвращает ulong_max, если модуль преобразованной величины слишком велик, устанавливая errno в erange.
Стандарт ANSI требует наличия функции strtoul.
strtoul не требует никаких процедур ОС
Используйте system(NULL) для проверки доступности /bin/sh.
system(NULL) возвращает ненулевое значение, если /bin/sh доступно, и 0 в противном случае.
Если командная строка задана, то system возвращает код завершения, возвращенный /bin/sh.
Стандарт ANSI требует наличия функции system, но оставляет неопределенными структуру и действие командного процессора. ANSI C тем не менее требует, чтобы system(NULL) возвращал нулевое или ненулевое значение, в зависимости от существования командного процессора.
POSIX.2 требует наличия функции system и вызова /bin/sh.
Требуются процедуры ОС exit, execve, fork, wait.
Каждый вызов wctomb копиpyет знак wchar в *s, если только s не является yказателем NULL.
Стандарт ANSI требует наличия функции mbtowc. Однако в деталях реализации возникают различия.