네트워크 모니터링 관련하여.. /proc/net/dev 부분

PhuketDay의 이미지

/proc/net/dev 를 파일 열기 함수로 통해 읽어와서

eth0: 의 Receive 부분과 Transmit 부분을 읽어왔습니다.

제가 구하고자 하는것은 예를들면 초당 send,recv 트래픽을 구하는것이 목적인데

현재 값을 구해오고 1초 후의 값을 구해온후

1초 후에 Receive 값 - 1초 전의 Receive 값 을 하면

초당 변화된 Receive 값을 통해 recv 트래픽을 구할수 있는건가요?

그런데 문제는 예를들어 Receive 값이 10(ex : 10240000000) 기가 이상 이 되었다고 하였을때 자리수가 11자리가 됩니다

11 자리의 문자열을 숫자로 변환하려면 어떤것을 써야되는지.. atoll 을 사용했는데 에러가 나서 이렇게 질문 드립니다

그리고 윈도우 의 __int64 는 리눅스의 long long int 와 같다고 하던데 10자리 이상은 변수대입을 못하는거 같습니다

요지는

1. 네트워크 전송 트래픽 구하는 방법

2. 11 자리 문자열을 숫자로 변환하기 위한 함수 그리고 11자리 이상의 숫자를 대입할 변수 타입은 어떤 타입이 있는지 궁급 합니다

모두 좋은 하루 되세요~.

모지리의 이미지

long double in

sscanf(ptr,"%llu",&in);

직접 구현하시는것도 좋은 방법인데요. 가장 좋은것은 훌륭한 선배님들의 코드를 보면서 어떻게 만들었을까 하는것을 보면서 연습해보시는것도 좋은 방법일겁니다. 구굴에서 찾아 보시면 정말 수억 나올겁니다.

원하시는 코드는 네트웍 관련 가장 일반적인 코드들에 대부분 들어 있을겁니다.

prether의 이미지

냉무

/***************************************
Being the one is just like being in love.
***************************************/

ssehoony의 이미지

11자리 이상도 long long int 로 됩니다.
아마 long long int a = 12345678901234567890;
이런식으로 입력 하셨겠죠?

C에서 정수상수는 int로 간주합니다.
이렇게 하시면 12345678901234567890 이 일단 int형으로 암묵적인 변환이 발생하고
변환된 int 를 a 에 대입하게 되는 꼴이 됩니다.

long long int a = 12345678901234567890LL;
위 처럼 숫자뒤에 LL을 넣어서 long long 임을 알려줘야 됩니다.

참고로
float f = 10.0;
이라고 하면 10.0 이란 하는 double 를 float 으로 형변환해서 f 에 대입하는 코드입니다.
C에서 실수상수는 기본이 double 이기 때문이죠.
float f = 10.0f; 라고 해야 float상수를 f에 대입하는 코드라고 할 수 있습니다.

/proc/net/dev 에서 얻어온 트래픽 값은 32bit 를 넘지 않을 듯 합니다.
아마 네트워크 디바이스 모듈도 그 정보를 저장하기 위해 32bit 를 사용했을 듯 하네요.
32bit 를 넘으면 0으로 리셋 될 듯 하네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.