Develop
2014.02.08 01:53
[c] 64bit 머신에서 inet_ntoa() 사용시 Segment fault 대처 방법법
Views 14266 Comment 0
libpcap을 사용해서 만든 프로토콜 모니터링 프로그램이..
컴파일부터 애를 먹이더니 실행시 Segment falt 가 떨어진다 ㅠㅠ
멘붕을 느끼며 몇 시간 동안 삽질하며 확인해보니,
32bit에서는 기존 상태 그대로 컴파일/실행이 잘 되지만..
64bit에서는 코드 일부를 수정해야 컴파일이 되고 실행시 Segment falt 메시지가 나온다.
결국 64비트에서만 이상하다는..? ㅎㅎ
아래 처럼 2가지 부분을 수정하니 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));
흐흐흐..
저렇게 하니깐 잘 됨 ㅎㅎ
위의 설명이 적용된 inet_aton() 함수와 inet_ntoa() 함수 샘플
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
struct in_addr in;
struct in_addr inp;
char buf[16];
//memcpy(&in, &inp, 8);
inet_aton("123.123.123.123", &inp);
//strcpy(buf, (char *)inet_ntoa(inp));
strcpy(buf, (char *)inet_ntoa(*(struct in_addr *)&inp));
printf("ip : %s", buf);
return 0;
}
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
48 | Develop | [js] 웹페이지에서 특정 엘리먼트 드래그, 복사, 컨텍스트메뉴, 키보드 막기 | hooni | 2013.11.04 | 30139 |
47 | Develop | [ios] Random Thoughts: Rand() vs. arc4random() | hooni | 2013.10.31 | 68125 |
46 | System/OS | [linux] 특정 문자열 포함된 파일 찾는 명령어 | hooni | 2013.10.16 | 30729 |
45 | Develop | [ios] UIAlertView 초간단 샘플 ㅎㅎ | hooni | 2013.10.14 | 46207 |
44 | System/OS | [mac] 맥에서 슬립(잠자기) 모드 진입을 막는 방법~ | hooni | 2013.10.10 | 31309 |
43 | System/OS |
[mac] Mac에서 Mac으로 원격제어하기 (맥에서 맥으로)
![]() |
hooni | 2013.10.08 | 37265 |
42 | Develop | [ios] UIView에서 상위 UIViewController 가져오기 | hooni | 2013.09.27 | 20259 |
41 | Etc | [svn] 콘솔에서 svn 사용시 레티나용 이미지 add 안될 때.. | hooni | 2013.09.25 | 37655 |
40 | Develop | [ios] 소소한 팁 (Rect,Point,Path,URL 등) | hooni | 2013.08.08 | 29535 |
39 | PPT |
[android][ios] 알림(Notification) 기능에 대한 원리와 구현 방안 (APNS포함)
![]() |
hooni | 2013.04.23 | 37923 |
38 | PPT |
[android] XML파서(XMLParser)의 종류와 성능 비교에 대한 발표 자료
![]() |
hooni | 2013.04.23 | 75723 |
37 | Develop | [C#] MD5, SHA1 해시 & 인코딩 | hooni | 2013.04.23 | 77970 |