+ char buf[32];
+ size_t c = fread(buf, 1, sizeof(buf) - 1, f);
+ pclose(f);
+ buf[c] = '\0';
+ if ( sscanf(buf, "%d.%d", &major, &minor) != 2 )
+ {
+ // unrecognized uname string format
+ major =
+ minor = -1;
+ }
+ }
+ else
+ {
+ // failed to run uname