Я пишу программу на C, которая передает файлы по сети. Я планирую использовать rsync для фактической передачи файлов. Исходный код rsync свободно доступен здесь: https://rsync.samba.org/download.htmlИнтеграция программы с открытым исходным кодом в мою собственную в C
С точки зрения интеграции его в мою программу, я могу думать о двух путях.
Compile Rsync и запустить исполняемый файл в моей программе
execv("rsync", some_args);
Rename Rsync-х
main()
к и вызвать новую функцию из моей программы.
Каковы преимущества и недостатки каждого метода, и есть ли другой способ, который у меня не был?
Я знаю, что вариант 2 означает, что обычные вещи, которые происходят при установке и срыве выполнения программ, не произойдут и поэтому могут быть ненадежными. Однако, если у меня есть исходный код, кажется глупым игнорировать его в пользу просто запуска исполняемого файла.
Вы считали [librsync] (https://github.com/librsync/librsync)? Однако он реализует фактически алгоритм сжатия * rsync *, а не протокол передачи. – morido
Я действительно не знал, что существует librsync. Спасибо за ссылку, я проверю ее. – Sam
Независимо от того, что вы делаете: ** соблюдайте условия лицензирования! ** Если вы связываетесь, весь ваш код может стать OSS! – Olaf