rx byte , tx byte의 크기 값들이요

dlffos의 이미지

ifconfig 명령어 실행 시
rx byte : N (N bit or N Kib)
등등 해서 해당 byte의 단위를 계속해서 변환하는데
어떤식으로 구현 해야할까요..
크기 변화에 따라 단위를 설정해 주려 합니다.
대략적인 틀이라도 좀..

ymir의 이미지

대략 이런 식으로 인가요...?

#include <stdint.h>
 
#define	LAST_UNIT_INDEX	4
static const char *unit[] =
{
	"bytes",
	"KiB",	/* kibibyte */
	"MiB",	/* mebibyte */
	"GiB",	/* gibibyte */
	"TiB"	/* tebibyte */
};
 
static void print_bytes(uint64_t bytes)
{
	uint64_t int_part = bytes;
	uint64_t frac_part = 0;
	int i = LAST_UNIT_INDEX;
 
	do {
		if (int_part < 1024)
			break;
 
		frac_part = ((int_part & 0x03FF) * 10) >> 10;
		int_part >>= 10;
	} while (--i);
 
	printf("%llu bytes (%llu.%llu %s)\n", bytes, int_part, frac_part, unit[LAST_UNIT_INDEX - i]);
}

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

dlffos의 이미지

감사합니다 ㅎㅎ
간단한 거엿군요
뒤에 문자열 찍는데서 좀 해매고 있었습니다 ㅎ