Это может сломаться в будущем, но сейчас вы можете играть на большом количестве различий между обеими файловыми системами.
- / Applications, / Developer, / Library и другие специфичны для Mac. Если они у вас есть, это похоже на макинтош.
- / proc, / home, / srv и другие специфичны для linux. Если они там, это похоже на машину Linux. См. полный список .
Если вы объедините несколько из этих уловок проверки пути в функцию, вы можете изолировать себя от любого из уловок, терпящих неудачу независимо от других.
Вы можете проверить существование папки, используя stat.
struct stat st;
if(stat("/proc",&st) == 0) {
printf(" /proc is present: this may be Linux\n");
}