Сбой rsync для подключенного к сети диска с кодом C ++

0

Я пытаюсь отправить некоторые данные с подключенного диска в пункт назначения, я делаю это с помощью системной команды

Мой код

wstring cmd1 = L"\"C:\\Program Files\\cwRsync\\bin\\rsync.exe\" -cvriHPDkREL  --no-implied-dirs --stats /cygdrive/Z/32Bit /cygdrive/C/";
wstring syscmd = L"\"";
syscmd.append(cmd1);
syscmd.append(L"\"");
_wsystem(syscmd.c_str());

Выход, который я получаю на консоли,

sending incremental file list
rsync: link_stat "/cygdrive/Z/32Bit" failed: No such file or directory (2)

Number of files: 0
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 3
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 12
Total bytes received: 12

sent 12 bytes  received 12 bytes  48.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]

ПРИМЕЧАНИЕ. Когда я копирую ту же команду и запускаю ее в командной строке, все работает отлично. Я не могу понять, что не так. есть идеи?

  • 0
    Почти такой же вопрос, как у вас, все та же проблема (rsync не может найти файл)? stackoverflow.com/q/21749854/572743
Теги:
process
cygwin
rsync

1 ответ

1

Приводы Cygwin (например, /cygdrive/Z) доступны только для приложений, которые ссылаются на библиотеки cygwin.

Кажется, вы используете родной rsync для Windows, который не связан с библиотеками cygwin, и поэтому он не понимает cygdrives. Используйте rsync из дистрибутива cygwin, то есть C:\cygwin\bin\rsync.exe.

В качестве альтернативы сначала преобразуйте пути cygwin (например, /cygdrive/Z) в собственные пути Windows с cygpath утилиты cygpath и вместо этого используйте пути Windows.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню