连续调用inet_ntoa打印出错的问题
摘要:
近日写程序,在打印信息的时候调用了inet_ntoa函数,出现了打印一直出错的情况。google了一下,是因为inet_ntoa这类函数没有保证线程安全,其实现原理是在静态内容中申请一块内存,每次调用后返回该静态内存的指针,若是在同一个printf语句中连续调用两次inet_ntoa函数会导致后调用的覆盖先覆盖的那个。举个例子(参考了某位前辈的blogs): 1 #include 2 #include 3 #include 4 int main() 5 { 6 struct sockaddr_in ra = {0}; 7 struct sockaddr_i... 阅读全文
posted @ 2013-09-19 22:32 春之晓者 阅读(1232) 评论(0) 推荐(0) 编辑