我正在編寫一個通過網絡傳輸文件的C程序。我打算使用rsync來進行實際的文件傳輸。 rsync源代碼可以在這裏免費獲取:https://rsync.samba.org/download.html將開源程序集成到我自己的C
在將其集成到我的程序中,我可以考慮兩種方法。
編譯rsync的,在我的程序運行的可執行文件
execv("rsync", some_args);
重命名的rsync的
main()
,並從我的程序調用新的功能。
每種方法有哪些優點和缺點,有沒有另一種方法,我沒有通過?
我知道選項2意味着在程序執行的設置和拆除過程中發生的常見事情不會發生,因此可能不可靠。但是,如果我有源代碼,忽略它只是簡單地運行可執行文件似乎很愚蠢。
你有沒有考慮過[librsync](https://github.com/librsync/librsync)?它只實現* rsync *的實際壓縮算法,而不是傳輸協議。 – morido
我真的不知道librsync存在。感謝您的鏈接,我會檢查出來。 – Sam
無論你做什麼:**遵循許可條件!**如果連接,你的整個代碼可能會OSS! – Olaf