Моя функция strtol не может установить errno во время переполнения.Strtol не устанавливает errno при преобразовании переполнения
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <getopt.h>
#include <errno.h>
#include <stdlib.h>
int main(int argc, char **argv) {
errno = 0;
int e = strtol("1000000000000000", NULL, 10);
printf("%d %d\n", errno, e);
return 0;
}
возвращает
0 -1530494976
Что делать неправильно?
Компилятор
gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
Варианты
gcc -Wall -std=gnu99 -O2
Какой компилятор (и его версия) вы используете? Включили ли вы все необходимые заголовки? –
Что говорит страница man - это тип возврата 'strol'? – kaylum
Хорошо, компилятор и заголовки добавлены – Krzysztofik