Я встретил незамеченный результат strtol
в c
Вот пример программы.
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%x\n", strtol("0xfffff70A", NULL, 0));
return 0;
}
и вывод этой простой программы
0x7fffffff
а не 0xfffff70A
. И если я использую strtoul
, результат будет ровно 0xfffff70a
. Я использую 32-битную машину, и мне интересно, что происходит. PS. Я использую gcc 4.7.2
errno
в0
перед вызовомstrtol
илиstrtoul
и проверьте это после. Не используйте это значение, еслиerrno
имеет другое значение. - person pmg   schedule 23.05.2013