Expand description

Read data from /proc/net/dev into the struct ProcNetDev.

The documentation for /proc/net/dev is found here: https://www.kernel.org/doc/Documentation/filesystems/proc.txt

Here is an example obtaining the data from /proc/net/dev:

use proc_sys_parser::{net_dev, net_dev::ProcNetDev};

let proc_net_dev = net_dev::read();

println!("{:#?}", proc_net_dev);

Example output:

ProcNetDev {
    interface: [
        InterfaceStats { name: "lo".to_string(), receive_bytes: 0, receive_packets: 0, receive_errors: 0, receive_drop: 0, receive_fifo: 0, receive_frame: 0, receive_compressed: 0, receive_multicast: 0, transmit_bytes: 0, transmit_packets: 0, transmit_errors: 0, transmit_drop: 0, transmit_fifo: 0, transmit_collisions: 0, transmit_carrier: 0, transmit_compressed: 0 },
        InterfaceStats { name: "eth0".to_string(), receive_bytes: 151013652, receive_packets: 16736, receive_errors: 0, receive_drop: 0, receive_fifo: 0, receive_frame: 0, receive_compressed: 0, receive_multicast: 0, transmit_bytes: 816228, transmit_packets: 12257, transmit_errors: 0, transmit_drop: 0, transmit_fifo: 0, transmit_collisions: 0, transmit_carrier: 0, transmit_compressed: 0 }
    ]
}

(edited for readability)

If you want to change the path and/or file that is read for ProcNetDev, which is /proc/net/dev by default, use:

use proc_sys_parser::{net_dev, net_dev::{ProcNetDev, Builder}};

let proc_net_dev = Builder::new().file_name("/myproc/net/dev").read();

Structs§

Functions§

  • The main function for building a ProcNetDev struct with current data. This uses the Builder pattern, which allows settings such as the filename to specified.