プログラムが実行されているプラットフォームをどのように検出できるのか疑問に思いました。アプリケーションがあり、LinuxマシンかMacマシンかに応じて、特定のフォルダーに移動する必要があります。
ありがとう!
将来的には機能しなくなる可能性がありますが、現時点では、両方のファイルシステムの違いを多数試すことができます。
これらのパスチェックのトリックのいくつかを関数に組み合わせると、他のトリックとは独立して失敗するトリックのいずれかから身を守ることができます。
statを使用して、フォルダの存在を確認できます。
struct stat st;
if(stat("/proc",&st) == 0) {
printf(" /proc is present: this may be Linux\n");
}
おそらくMacまたはLinux専用にプログラムをコンパイルする必要があるので、ある種のプリプロセッサディレクティブを使用できます。このマクロのリストが役立つ場合があります。
uname()システムコールは、OSのバージョンについて通知します
Unixを使用していることがわかっている場合は、「uname」を実行すると、システムについてかなりの情報が得られます。あなたがもっと知る必要があるなら。もちろん、それは外部の実行可能ファイルに依存しています。
確認できる環境変数があるはずですが、どれかわかりません。