Программирование >>  Структурное программирование 

1 ... 321 322 323 [ 324 ] 325 326 327 ... 342


задано в интервале между 2 и 36, то ожидаемая форма ведущей последовательности - последовательность символов и цифр, используемых для представления целых чисел в системе счисления, основание которой определяется параметром base, с необязательным предшествующим знаком плюс или минус и не имеющая целочисленных суффиксов. Символы от а (А) до z (Z) обозначают цифры от 10 до 35 в системах счисления по основанию от 10 до 36; допускаются только символы, соответствующие значениям, меньшим, чем основание системы счисления. Если значение base равно 16, то строка цифр может начинаться с символов Ох (ОХ), перед которыми может находится знак числа, если он задается.

Основная последовательность определяется как максимально длинная подстрока начальной части входной строки, начинающаяся с первого значащего символа и соответствующая ожидаемой форме. Основная последовательность не содержит символов, если строка ввода пустая или целиком состоит из символов разделителей, или если первый значащий символ не является знаком, цифрой или допустимым символом.

Если форма основной последовательности соответствует ожидаемой и значение base равно нулю, то последовательность символов, начинающаяся с цифры, интерпретируется как целочисленная константа. Если основная последовательность имеет ожидаемую форму и значение base лежит между 2 и 36, то это значение используется в качестве основания системы счисления для преобразования, в котором каждому символу приписывается значение, как это описано выше. Если основная последовательность начинается со знака минус , то в результате преобразования будет получено отрицательное значение. В объект, на который ссылается endptr, помещается указатель на конец обработанной подстроки, если только endptr не нулевой указатель.

Если основная последовательность пуста или не имеет ожидаемой формы, преобразование не производится; в объект, на который ссылается endptr, помещается значение nptr при условии, что endptr не является нулевым указателем.

В случае успешного преобразования функция strtol возвращает преобразованное число. Если преобразование не может быть выполнено, возвращается нуль. Если результат преобразования выходит за границы диапазона допустимых значений, возвращаются значения LONG MAX или LONG MIN (в зависимости от знака результата) и в еггпо помещается значение макроса ERANGE.

unsigned long int strtoul(const char *nptr, char **endptr,

int base);

Преобразует начальную часть строки, на которую ссылается nptr, в число типа unsigned long int. Функция strtoul работает идентично функции strtol. Функция strtoul возвращает преобразованное значение, если оно было получено. Если преобразование не может быть выполнено, возвращается нуль. Если результат преобразования выходит за границы диапазона допустимых значений, возвращается значение ULONG MAX и в еггпо помещается значение макроса ERANGE.

int rand(void);

Функция rand вычисляет последовательность псевдослучайных целых чисел в диапазоне значений О - RAND MAX. Функция rand возвращает псевдослучайное целое число.



void srand(unsigned int seed);

Использует значение параметра в качестве начального числа для выработки новой последовательности псевдослучайных чисел, которые будут возвращаться при последующих обращениях к функции rand. Если srand вызвать затем с тем же самым значением параметра, то последовательность псевдослучайных чисел будет повторена. Если rand вызывается прежде, чем будет сделан вызов srand, будет сгенерирована последовательность, соответствующая вызову srand со значением начального числа 1. Следующие функции определяют переносимые версии функций rand и srand:

static unsigned long int next = 1;

int rand(void) /* RAND MAX предполагается равным 32767 */ {

next = next * 1103515245 + 12345;

return (unsigned int) (next/65536) % 32768;

void srand(unsigned int seed) {

next = seed;

void *calloc(size t nmemb, size t size);

Выделяет память для массива из nmemb объектов, каждый из которых имеет размер size. Выделяемая память инициализируется нулевыми битами. Функция calloc возвращает указатель на выделенную область памяти или нулевой указатель.

void free(void *ptr);

Освобождает область памяти, на которую ссылается указатель ptr, и делает ее доступной для последующего распределения. Если ptr является нулевым указателем, то никаких действий не производится. В противном случае, если аргумент не соответствует указателю, возвращенному ранее функциями calloc, malloc, или realloc, или если память уже была освобождена вызовами функций free или realloc, результат вызова free не определен.

void *malloc(size t size);

Выделяет память для объекта размером size с неопределенным значением. Функция malloc возвращает указатель на выделенную область памяти или нулевой указатель.

void *realloc(void *ptr, size t size);

Изменяет размер объекта, на который указывает ptr, до размера, определяемого параметром size. Содержимое общей части нового и старого объекта остается неизменным. Если новый размер объекта больше предыдущего, то значение выделенной дополнительной области памяти не определено. Если значение ptr равно нулевому указателю, функция realloc ведет себя подобно функции malloc при выделении памяти указанного объема. В противном случае, если аргумент не соответствует указателю, возвращенному ранее функциями calloc, malloc, или realloc, или если память уже была освобождена в результате вызова функций free или realloc, результат вызова realloc не определен. Если память не может быть выделена, объект, на который ссылается ptr, остается неизмененным. Если значение size равно нулю и ptr не является нулевым указателем, объект, на который указывает параметр ptr, освобождается. Функция realloc возвращает указатель на область памяти, размер которой, возможно, был изменен, или нулевой указатель.



void abort(void);

Вызывает аварийное завершение работы программы, если только сигнал SIGABRT не перехвачен и не было возврата из обработчика сигнала. В зависимости от реализации могут выполняться (или не выполняться) следующие действия: очистка буферов открытых потоков вывода, закрытие открытых потоков, удаление временных файлов. Определяемый реализацией системы код аварийного завершения программы может быть возвращен среде выполнения посредством вызова функции raise(SIGABRT). Функция abort не может возвращаться в точку вызова.

int atexit(void (*func) (void) );

Регистрирует функцию, на которую указывает func, которая должна вызываться без параметров при нормальном завершении программы. Реализация системы должна поддерживать регистрацию по крайней мере 32 функций. Функция atexit возвращает нуль в случае успешной регистрация и отличное от нуля значение в случае неудачи.

void exit(int status);

Вызывает нормальное завершение программы. Если в программе выполняется больше, чем одно обращение к функции exit, то результат не определен. Сначала выполняются все функции, зарегистрированные функцией atexit, в последовательности, обратной последовательности их регистрации. Каждая функция вызывается столько раз, сколько она была зарегистрирована. Затем, все открытые потоки с незаписанными буферизованными данными очищаются, закрываются все открытые потоки, и удаляются все файлы, созданные функцией tmpfile.

В заключение управление возвращается среде выполнения. Если значение status равно нулю или EXIT SUCCESS, то среда выполнения получает определяемый реализацией код успешного завершения. Если значение status равно EXIT FAILURE, то среда выполнения получает определяемый реализацией код аварийного завершения. В других случаях возвращаемое значение определяется реализацией. Функция exit не может возвращаться в точку вызова.

char *getenv(const char *name);

Ищет в списке переменных окружения строку, совпадающую со строкой, на которую указывает name. Набор имен переменных окружения и методы изменения списка определяются реализацией. Функция возвращает указатель на строку, связанную с найденным элементом списка. Строка, на которую ссылается указатель, не должна изменяться программой, но она может оказаться измененной при следующем обращением к функции getenv. Если заданное имя не найдено, возвращается нулевой указатель.

int system(const char *string);

Передает строку символов, на которую указывает string, командному процессору окружающей системы для выполнения. Способ выполнения зависит от реализации системы программирования. В качестве значения параметра может быть использован нулевой указатель, чтобы просто запросить, существует ли командный процессор. В случае, если аргумент является нулевым указателем, функция system возвращает отличное от нуля значение только в том случае, если командный процессор доступен. Если значение аргумента не является нулевым указателем, функция system возвращает определяемое реализацией значение.



1 ... 321 322 323 [ 324 ] 325 326 327 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика