この質問は非常に単純なようですが、プラットフォームに依存せずにCでファイルをコピーするための明確な解決策を見つけることができません。
オープンソースプロジェクトでsystem()呼び出しを使用して、ディレクトリを作成し、ファイルをコピーして、外部プログラムを実行しました。Mac OS Xやその他のUnix風のシステムでは非常にうまく機能しますが、Windowsでは失敗します。問題は次のとおりです。
system( "cp a.txt destination/b.txt" );
- Windowsは、パス区切り文字に円記号を使用します。(Unix風のスラッシュとの比較)
- Windowsは、内部コピーコマンドに「copy」を使用します。(Unix風のcpとの比較)
依存関係のないコピーコードを作成するにはどうすればよいですか?
(実際、私はこの問題を解決するためにマクロを作成しましたが、それはクールではありません。http: //code.google.com/p/npk/source/browse/trunk/npk/cli/tests/testutil.h、L22-56)