UNIXベースのOSが備えるべき機能です。

つまり、POSIXで定義された機能はUNIXベースのOSであればどれでも使用できることになります。

LinuxでもほとんどPOSIXの要件は満たしているようです。(すべてかどうかは分かりませんが。。)



POSIX認定された機能を使用するとUNIX系のさまざまなOSに移行しやすいので便利です。


POSIXの機能として具体的には、mkdir()やsleep()などの関数が存在します。

似たような関数はWindows用の関数でも存在しますが、微妙に名前が違ったり、引数の数が意味が違ったりします。

これは注意点かと思います。



【WindowsとPOSIXを区別なく使用するには?】

たぶん、WindowsとPOSIXを隠蔽化してシームレスにディレクトリ作成の関数などを使用したくなると

思います。

このためには、一番いいのはBoostを使用することだと思います。


ディレクトリなどの操作であれば、以下のものがあります。

 ・path.hpp

 ・operations.hpp

 ・error_code.hpp


 これらは、ディレクトリやファイルをイテレータで扱ったり、存在をチェックしたりでき、かなり便利な形で

 隠蔽化してくれています!


ただし、コンパイルが必要です。



<自分で何とかしたい場合>

もし自分で必要な関数だけ隠蔽化したければ、"boost/config.hpp"をincludeしましょう。

Boostのライブラリで、コンパイルは必要ありません。

これは、環境がWindowsかどうかを教えてくれる定義を提供してくれます。

具体的には、以下のような感じで使用します。



#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)
 #include <windows.h>
 #include <direct.h>
#else
 #include <unistd.h>
 #include <sys/stat.h>
#endif

これでコンパイル時にWindowsなら上2つをincludeして、違えば下2つをincludeします。

資料が少なくて正確なところはわかりませんが、上記の感じで使用できると思います。




参考:

・Boostとは?

・ログ出力クラスを作成するには?

・CGIセッションのサンプル  ←セッションファイルの削除の部分で使用しています
・IT用語辞典

・@ITでの説明