看起来这个问题很简单,但我找不到没有平台依赖的在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 )