今天发现一个问题,在用char *str = strerror(errno)。得到str指针指向非法内存。但是加上string.h就正常了。不明白这是为什么,求赐教。
linux 2.6 64位系统
strerror就是定义在string.h中的呢,不加string.h居然能编译过,估计是的工程链接到的strerror是另外一个地方定义了的。你工程里有自定义的strerror函数?
补充上代码。和strerror一样的情况。注掉arpa/inet.h能编译过,但是运行崩溃。包上就好了。
是链接到系统的函数定义里面去了 所以能编译