Contents

조회 수 14241 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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;
}



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
841 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16395
840 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21281
839 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16489
838 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 11397
837 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 756
836 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
835 Develop 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ file hooni 2013.04.23 12130
834 Develop 정리할 자료. file hooni 2015.07.02 689
833 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 270161
832 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
831 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 27453
830 Develop 알고리즘 성능분석 file hooni 2014.06.24 2982
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71