Как я могу копировать файлы на C без зависимости от платформы?

Похоже, что этот вопрос довольно простой, но я не могу найти четкого решения для копирования файлов на C без зависимости от платформы.

Я использовал вызов system () в своем проекте с открытым исходным кодом для создания каталога, копирования файлов и запуска внешних программ. Он очень хорошо работает в Mac OS X и других Unix-системах, но не работает в Windows. Проблема заключалась в следующем:

system( "cp a.txt destination/b.txt" );
  • Windows использует обратную косую черту для разделителя пути. (против косой черты в Unix-ish)
  • Windows использует «копировать» для внутренней команды копирования. (vs cp в Unix-ish)

Как я могу написать код копирования без зависимости?

(На самом деле, я написал макросы для решения этой проблемы, но это не круто. http://code.google .com / p / npk / source / browse / trunk / npk / cli / tests / testutil.h , L22-56)

9
задан lqez 24 July 2011 в 15:47
поделиться