我在C沒有經驗,但是......遠程同步目錄
如果我想寫一個程序,在C,爲Linux系統,這將本地文件/目錄同步到遠程文件/目錄,自動當本地文件/目錄更新;我應該看看哪些庫或嵌入式應用?
到目前爲止,我看着inotify,但我真的缺乏沒有一些幫助的搜索這個術語。
編輯
這僅僅是一個鍛鍊。
我在C沒有經驗,但是......遠程同步目錄
如果我想寫一個程序,在C,爲Linux系統,這將本地文件/目錄同步到遠程文件/目錄,自動當本地文件/目錄更新;我應該看看哪些庫或嵌入式應用?
到目前爲止,我看着inotify,但我真的缺乏沒有一些幫助的搜索這個術語。
編輯
這僅僅是一個鍛鍊。
inotify
是要走的路。通過它努力奮鬥,當你陷入困境時會回來,並在這裏提出更具體的問題。
這裏有讓你開始一個例子(原諒C++輸出語句,想象printf
代替):
void waitfor_activity(const char *path)
{
const int fd = inotify_init();
const int wd = inotify_add_watch(fd, path, IN_MODIFY | IN_CLOSE_WRITE);
char buffer[EVENT_BUF_LEN];
while (true)
{
const ssize_t length = read(fd, buffer, EVENT_BUF_LEN);
if (length < 0) {
perror("read");
}
const struct inotify_event *event = (struct inotify_event *) buffer;
std::cout << "event: ";
if (event->mask & IN_CLOSE_WRITE)
{
std::cout << "IN_CLOSE_WRITE ";
}
if (event->mask & IN_MODIFY)
{
std::cout << "IN_MODIFY ";
}
std::cout << std::endl;
}
close(fd);
}
感謝您的鼓勵。 – noel
我會帶正在寫一個客戶端 - 服務器應用程序的簡易方法 - 客戶會看更改並向服務器發送一個差異,服務器將在遠程機器上應用該補丁。例如,這似乎很容易通過使用BSD套接字API和libdiff來實現。 – 2012-11-04 07:47:37
您可以使用任何語言進行練習,以便訪問系統調用(例如Ocaml,Perl,Python,Ruby,C,C++,...) –