System_programming_study_210706

Day7

앞전에 만들었던 fshare 프로그램을 조금 바꾸어서, drop box 처럼, 실시간으로 서버의 폴더를 공유하도록 만들어보기로 했다.
처음에는 어떻게 프로그램이 작동해야할지 구상이 안되었는데, 교수님께서 제시해주신 작은 subtask 들을 먼저 만들어보고, 시나리오들을 그려보며 친구들과 공유하면서 전체적인 원리를 이해해갔다.

  1. inotify 라는 라이브러리를 사용하면, 지정한 폴더 내에서 이루어지는 작업들의 정보를 간단하게 얻을 수 있다. inotify_init() 과 inotify_add_watch() 를 통해서 폴더를 지정하고나면(여러개도 가능하다), 지정된 파일 디스크립터에 정보가 들어온다. 정보들은 inotify_event 라는 구조체의 형태로 들어와있다.

  2. 큰 프로그램 하나를 만드는 과정에서, subtask들을 잘 세우는 것이 중요한 것 같다. 처음부터 너무 큰 그림을 그리려고 하니, 복잡해서 어디서 부터 시작해야할지 가닥을 잡기가 어려웠다. 그런데 필요한 작업을 작게 분리하고, 그것들을 하나 하나 제대로 이해하기 위해서 작은 프로그램들을 만들고 나니, 어떻게 그것들을 사용해야 할지 생각이 나아갔다.