рдореИрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдИ рдЧрдИ рдПрдкреАрдЖрдИ рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЦ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдЖрд▓реЗрдЦ dklab_realsync рдЙрдкрдпреЛрдЧрд┐рддрд╛ (
рд╣рдм ,
рдЧреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдПрдХ рд▓реЗрдЦ ) рдФрд░ рдореЗрд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░реИрдХрд┐рдВрдЧ рдбреЗрдореЛрдВ рдкрд░ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рдореИрдВ рдЕрднреА рддрдХ рдШреЛрд╖рдгрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд╡рд┐рдВрдбреЛрдЬ ReadDirectoryChangesW
рд╡рд┐рдВрдбреЛрдЬ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрджреНрднреБрдд
ReadDirectoryChangesW рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА (bWatchSubtree) рдХреЗ рд▓рд┐рдП рдПрдХ рдзреНрд╡рдЬ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрд╕реА dklab_realsync
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреЛрдб рдХреА 80 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдпрд╛ 3.5 Kb рд▓рдЧрддреА рд╣реИрдВред рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ, рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдПрд╕рдПрдордмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ!
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдЦрд╝рд╛рд╕ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
- рдкрд░рд┐рд╡рд░реНрддрди рдмрдлрд╝рд░ рдХрд╛ рдЕрдВрддрд┐рдо рдЖрдХрд╛рд░, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдИрд╡реЗрдВрдЯ рдХрддрд╛рд░ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдпреЗ рдИрд╡реЗрдВрдЯ рдЦреЛ рдЬрд╛рдПрдВрдЧреЗ
- рд╡реЙрдЪрдбреЙрдЧ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдлрдПрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЪрд╛рд▓рди рдШрдЯрдирд╛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ
- рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ FS рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ 64 Kb рддрдХ рд╕реАрдорд┐рдд рд╣реИ
рдирд┐рд╖реНрдХрд░реНрд╖: ReadDirectoryChangesW рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдШрдЯрдирд╛ рдХрддрд╛рд░ рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдкреВрд░реНрдг рдПрдлрдПрд╕ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, FSEvents
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рднреА рд╣реИ рдЬрд┐рд╕реЗ
FSEvents рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛,
рдбреЗрдорди рдХрд╛
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреА 50 рд▓рд╛рдЗрдиреЗрдВ рдпрд╛ 1.8 рдХреЗрдмреА рд╣реИред рдХрддрд╛рд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ!), рд▓реЗрдХрд┐рди рдпрджрд┐ fseventsd рдбреЗрдореЙрди "рдХреНрд░реИрд╢" рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╕реНрдХреИрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 10.7 рддрдХ рдпрд╣ рдПрдкреАрдЖрдИ рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдШрдЯрдирд╛рдПрдВ рдХрд╣реАрдВ рднреА рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ (
FSEvents рд╕реЗрд╡рд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░, рдкреНрд░рддрд┐-рд╡реЙрд▓реНрдпреВрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ ), рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдмрдЪрд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖: рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП FSEvents рдПрдкреАрдЖрдИ рдРрд╕реЗ рд╕рднреА API рдореЗрдВ рд╕рдмрд╕реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдХрддрд╛рд░ рдореЗрдВ рднреАрдбрд╝ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрддреАрдд рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рднреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдИрд╡реЗрдВрдЯ рд╡рд┐рд╡рд░рдгрд┐рдВрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рд╕рдВрд╕реНрдХрд░рдг 10.7 рддрдХ) рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбреЗрдореЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рдХрдо рдХреБрд╢рд▓ рд╣реИред
рд▓рд┐рдирдХреНрд╕, inotify
рд▓рд┐рдирдХреНрд╕ рд╡реЗрдирд┐рд▓рд╛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ -
рдЗрдиреЛрдЯрд┐рдлрд╛рдИ ред рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, inotify рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдирдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдбреЗрдорди
рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рдпрд╛ 8 рдХреЗрдмреА рдХреА 250 рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИред
Dietlibc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреЗрдЯрд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд▓рдЧрднрдЧ 14 kb рд▓рдЧрддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рдЕрдкреНрд░рд┐рдп рдХреНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡реЙрдЪ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ) рдФрд░ рдирд╛рдо рдХреЗ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдлрд╝рдВрдХреНрд╢рди
inotify_add_watch рд╣реИ , рдЬрд┐рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрде рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡рд╛рдкрд╕реА рдирд╣реАрдВ рд╣реИ - inotify_get_path, рдЬреЛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реА рдкрде рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдИрд╡реЗрдВрдЯреНрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдФрд░ рд░рд┐рд▓реЗрдЯрд┐рд╡ рдкрд╛рде рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ рдмрджрд▓реЗ рд╣реБрдП рдлрд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
Inotify рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рдиреБрдХрд╕рд╛рди:
- рдХрддрд╛рд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рдХрддрд╛рд░ рд▓рдВрдмрд╛рдИ / proc / sys / fs / inotify / max_queued_events рдореЗрдВ рд╕реЗрдЯ рд╣реИ)
- рдЕрдзрд┐рдХрддрдо рдЯреНрд░реИрдХрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рд╕реАрдорд╛ / рд╕реЗрдЯ / sys / fs / inotify / max_userwatch.com) рдкрд░ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
- рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднрд╛рд╡
- рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдорд╛рдорд▓реЗ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП mkdir -pa / b / c)ред рдЖрдкрдХреЛ рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ "рдП" рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд╣реИрдВрдбрд▓рд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдореЗрдВ рдПрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдШрдЯрдирд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рдЖрдПрдЧреАред
- рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╡реЙрдЪ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (wd) рдХреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ uint32 рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
рдлреНрд░реАрдмреАрдПрд╕рдбреА, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, рдХреЗрдХреНрдпреВрдпреВ
FreeBSD рдФрд░ Mac OS X рдЖрдкрдХреЛ kqueue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЗрдиреЛрдЯрд┐рдлрд╛рдИ рдХреЗ рд╕рдорд╛рди рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, kqueue рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓реЗ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдФрд░ рднреА рдХрдбрд╝реЗ рд╣реИрдВред
рдХреБрд▓:
рддрдВрддреНрд░ | рдХрддрд╛рд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ | рдкреБрдирд░рд╛рд╡рд░реНрддреА? | рдореИрдХреНрд╕ред рд╡рд╕реНрддреБрдУрдВ | рд╡рд┐рдирд┐рд░реНрджреЗрд╢ |
---|
ReadDirectoryChangesW | рд╣рд╛рдВ | рд╣рд╛рдВ | - | рдлрд╝рд╛рдЗрд▓ |
FSEvents | рдирд╣реАрдВ | рд╣рд╛рдВ | - | рдлрд╝рд╛рдЗрд▓ (10.7+) |
inotify | рд╣рд╛рдВ | рдирд╣реАрдВ | 8192 | рдлрд╝рд╛рдЗрд▓ |
kqueue | рд╣рд╛рдВ | рдирд╣реАрдВ | 1024 | рдлрд╝рд╛рдЗрд▓ |
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдПрдкреАрдЖрдИ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ kqueue рдФрд░ inotify рддрдВрддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднреА рд╣реИрдВред рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдУрдПрд╕ рдЯреНрд░реИрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдм рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдмреЗрд╣рддрд░ рдЕрдВрджрд╛рдЬрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдХрд┐рд╕реНрдордд рдХрд┐рддрдиреА рдХрдард┐рди рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдХреБрд╢рд▓ рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :)ред
* Www.alexblogger.com/2008_01_01_archive.html рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░