inet_ntoa 64bit 사용시 에러 대처방법

Language/C 2012. 2. 2. 12:43
32비트에 컴파일할 때 문제가 없던 일들이..

64비트에서 일어난 경우 중 하나입니다.

inet_ntoa() 이 함수

컴파일 에러는 없지만.. 이 함수가 실행하는 시점에서 Segment fault 라는 메시지를 접하실겁니다.


해결방법은..

간단히 헤더에 한줄만 추가해주면됩니다.

#include <arpa/inet.h>


그리고 기존에 아래와 같이 코딩하고 계셨다면..

printf("%s ", inet_ntoa(ip->saddr));


아래와 같은 에러를 접하셨을겁니다.

error: incompatible type for argument 1 of ‘inet_ntoa’


간단히 해석해보면 inet_ntoa() 함수의 인자값이 잘못된다는 얘기입니다

아래와 같이 수정하시면 해결이 됩니다.

printf("%s ", inet_ntoa(*(struct in_addr *)&ip->saddr));

'Language > C' 카테고리의 다른 글

bsearch() 함수 설명 및 알고리즘  (0) 2012.03.09
semget() 세마포어 생성 및 접근  (0) 2012.02.02
FILE, fopen, fprintf, fflush, fclose  (0) 2012.01.30
multicast(receive)  (0) 2012.01.16
multicast(send)  (0) 2012.01.16
: