diff options
| -rw-r--r-- | fsbm.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| @@ -12,8 +12,6 @@  #include <string.h>  #include <stddef.h> -#define PROC_NET_DEV "/proc/net/dev" -  struct iface {  	char interface[IFNAMSIZ];  	struct timeval timestamp; @@ -27,6 +25,7 @@ bool request_name_enabled = false;  volatile bool q = false;  bool use_bits = false;  char *request_name; +char *netdev_path = "/proc/net/dev";  struct iface *interfaces = NULL;  size_t no_iface = 0; @@ -71,9 +70,9 @@ void print_bps(double bytesPerSecond) {  void print_stats() {  	// Open /proc/net/dev -	FILE *dev = fopen(PROC_NET_DEV, "r"); +	FILE *dev = fopen(netdev_path, "r");  	if (!dev) { -		fprintf(stderr, "cannot open %s - %s\n", PROC_NET_DEV, strerror(errno)); +		fprintf(stderr, "cannot open %s - %s\n", netdev_path, strerror(errno));  		exit(EXIT_FAILURE);  	} @@ -174,7 +173,7 @@ int main(int argc, char **argv) {  	int c;   	unsigned long long interval = 10 * 100000; -	while ((c = getopt (argc, argv, "rbi:d:hv")) != -1)  +	while ((c = getopt (argc, argv, "rbi:d:f:hv")) != -1)   		switch (c)  		{  			case 'b': @@ -186,9 +185,12 @@ int main(int argc, char **argv) {  				interval = interval * 100000;  				break;  			case 'h': -				printf("USAGE: fsbm, -i shows only matching interface, -r gives raw counts, -b specifies bits, -d sets interval in 10ths of seconds, 1 sec default\n"); +				printf("USAGE: fsbm, \n\t-f use a different /net/dev file, like /proc/123/net/dev\n\t-i shows only matching interface, \n\t-r gives raw counts, \n\t-b specifies bits, \n\t-d sets interval in 10ths of seconds, 1 sec default\n");  				exit(EXIT_SUCCESS);  				break; +			case 'f': +				netdev_path = strdup(optarg); +        break;  			case 'i':  				request_name_enabled = true;  				request_name = strdup(optarg); | 
