- if (fscanf(fp, "%d.%d.%*d", &major, &minor) >= 2
- && major >= 2 && minor >= 2)
- /* Linux 2.2 -- transmit packet count in 10th field */
- netdevfmt = "%d %d %*d %*d %*d %d %*d %*d %*d %d %*d %*d %d";
- pclose(fp);
+ if (sscanf(utsname.release, "%d.%d.%*d", &major, &minor) >= 2
+ && (major < 2 || (major == 2 && minor < 2)))
+ /* pre-linux-2.2 format -- transmit packet count in 8th field */
+ netdevfmt = "%d %d %*d %*d %*d %d %*d %d %*d %*d %*d %*d %d";