The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

strtol (3)
  • strtol (3) ( Solaris man: Библиотечные вызовы )
  • strtol (3) ( FreeBSD man: Библиотечные вызовы )
  • >> strtol (3) ( Русские man: Библиотечные вызовы )
  • strtol (3) ( Linux man: Библиотечные вызовы )
  • strtol (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    strtol, strtoll - перевод строки в длинное целое (long int)  

    СИНТАКСИС

    #include <stdlib.h>
    
    long int
    strtol(const char *nptr, char **endptr, int base);
    
    long long int
    strtoll(const char *nptr, char **endptr, int base);
    
     

    ОПИСАНИЕ

    Функция strtol() конвертирует начальную часть строки nptr в длинное целое в соответствии с указанным base, которое должно находиться в диапазоне от 2-х до 36-х включительно или быть равным нулю.

    Строка должна начинаться с пустых символов (определяемых при помощи isspace(3)), далее должен следовать один знак: `+' или `-' (если есть). Если base равно нулю или 16-и, то строка может начинаться с приставки `0x', что означает использование шестнадцатеричной системы исчисления; иначе, если base равно нулю, используется десятичная система исчисления, кроме случая, когда последующий символ также равен `0': тогда используется восьмеричная система исчисления.

    Остаток строки, таким образом, конвертируется в целое число (long int). Этот процесс останавливается, если в строке встречается некорректное значение (например, не соответствующая системе исчисления цифра). Символ `A' в верхнем или нижнем регистре означает 10, `B' означает 11 и так далее (до `Z', означающей 35).

    Если значение endptr - не NULL, то strtol() записывает адрес первого некорректного значения в *endptr. Если в строке вообще нет цифр, то strtol() сохраняет начальное значение nptr в *endptr (и возвращает 0). В частности, если *nptr не равно `\0', а **endptr равно `\0' по возвращении, то вся строка состоит из корректных символов.

    Функция strtoll() работает так же, как и strtol(), но возвращает значение типа long long int.  

    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

    Функция strtol() возвращает результат преобразования, если значение не вызвало "переполнения" или не было крайне маленьким. Если происходит последнее, то strtol() возвращает LONG_MIN. Если же произошло "переполнение", то strtol() возвращает LONG_MAX. В обоих случаях глобальной переменной errno присваивается значение ERANGE. То же самое относится к функции strtoll() (только вместо LONG_MIN и LONG_MAX возвращаются значения LLONG_MIN и LLONG_MAX).  

    НАЙДЕННЫЕ ОШИБКИ

    ERANGE
    данная строка не входит в обрабатываемый диапазон чисел.
    EINVAL
    (не включено в C99) Аргумент base содержит неподдерживаемое значение.

    Некоторые реализации могут также устанавливать errno в EINVAL в случае, когда преобразование не было выполнено (не было встречено цифр и возвращен 0).  

    ЗАМЕЧАНИЯ

    В локалях, отличных от локали "C", могут приниматься и другие строки.  

    СООТВЕТСТВИЕ СТАНДАРТАМ

    Функция strtol() соответствует SVID 3, BSD 4.3, ISO 9899 (C99) и POSIX, а функция strtoll() соответсвует ISO 9899 (C99) и POSIX-2001.  

    СМ. ТАКЖЕ

    atof(3), atoi(3), atol(3), strtod(3), strtoul(3)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    ЗАМЕЧАНИЯ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру