- FILE *f = popen("uname -r", "r");
- if (f)
- {
- 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
- major =
- minor = -1;
- }