Views 14232 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

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
No. Category Subject Author Date Views
53 System/OS 서버 확장을 위한 두 가지 방법 file hooni 2018.08.29 2098
52 System/OS Mac에서 Node.js 설치하기 file hooni 2018.09.28 4187
51 Develop [ios] Swift 4 String, Date, DateFormatter 예제 hooni 2018.10.18 1394
50 Develop [ios] APNS, Remote Push 수신 시점에서 앱의 3가지 실행 상태 hooni 2018.10.19 965
49 Develop [ios] APNS, Remote Push 사용자가 수신을 동의했는지 확인하기 hooni 2018.10.19 1250
48 Develop [ios] Swift 4 Singleton inheritance hooni 2018.10.31 1590
47 Develop [ios] Swift 4 Dictionary 사용하기 file hooni 2018.11.29 2025
46 Develop [ios] Locale Identifiers file hooni 2018.11.29 1623
45 Develop [Javascript][Ajax] 자바스크립트 강의 산출물 file hooni 2019.10.05 699
44 Develop 링크들 보고 지울 내용 secret hooni 2019.11.21 0
43 Develop [python] 파라미터 앞에 *, ** 의 의미? (*args, **kwargs) hooni 2019.11.22 1551
42 Database SQL JOIN 정리 (Inner Join & Outer Join) file hooni 2019.11.22 1834
41 Database [mysql] MySql DB/테이블 사이즈 확인을 위한 쿼리 hooni 2019.11.22 658
40 Database [mysql] MySQL 백업 및 복구 hooni 2019.11.22 819
39 Database [oracle] Oracle 사용자 추가 절차 hooni 2019.11.22 616
38 Database [mysql] MySQL 데이터베이스 추가 및 사용자 추가 hooni 2019.11.22 663
Board Pagination Prev 1 ... 69 70 71 72 73 74 Next
/ 74