I\'ve searched over this topic but found very few details which were helpful. With these details I\'ve tried to cook some code as follows.
Note: Please compa
To add to the accepted answer, its important to realize that the amount of data displayed by the interface overflows and restarts at 0
after every 4 GB
, especially if you are using this code to calculate the difference between two readings. This is because ifi_obytes
and ifi_ibytes
are uint_32
and their max value is 4294967295
.
Also, I recommend using unsigned int
s for the variables containing the data sent and received. Regular int
s have half the max value of an unsigned integer, so when adding ifi_obytes
, it may cause an overflow.
unsigned int sent = 0;
sent += networkStatisc->ifi_obytes;