przeładowanie konfiguracji w momencie zmiany pliku z ustawieniami

0

Jest jaki sprytny standard jak monitorować czy plik został zmodyfikowany na platformie Linux/Windows,
czy po prostu samemu w wątku trzeba monitorować zmiany ?

2

Windows ma do tego API, można się zapisać na event

Użyłem tego 1x czy 2x
Jak odnowię pamieć, przeredaguję.
To chyba to
https://learn.microsoft.com/en-us/windows/win32/fileio/obtaining-directory-change-notifications

Działało również w stosunku do danych na dysku SMB

3

Multiplatform, nigdy nie używałem:
https://doc.qt.io/qt-5/qfilesystemwatcher.html

Na linuxie korzystam z klas funkcji inotify.

0
malencki napisał(a):

Multiplatform, nigdy nie używałem:
https://doc.qt.io/qt-5/qfilesystemwatcher.html

Na linuxie korzystam z klas funkcji inotify.

Wydaje się, że jeśli multiplatfdorowe nie będzie korzystać z natywnego a zapie...ć w pętli brutal force, byłoby to kosztowne

2
AnyKtokolwiek napisał(a):
malencki napisał(a):

Multiplatform, nigdy nie używałem:
https://doc.qt.io/qt-5/qfilesystemwatcher.html

Na linuxie korzystam z klas funkcji inotify.

Wydaje się, że jeśli multiplatfdorowe nie będzie korzystać z natywnego a zapie...ć w pętli brutal force, byłoby to kosztowne

Nie.
https://github.com/qt/qtbase/blob/dev/src/corelib/io/qfilesystemwatcher_inotify.cpp

Są jeszcze na githubie inne FileWatchery, więc @Marius.Maximus możesz czegoś sensownego poszukać.

1

Co do multiplatform - sam używam od jakiegoś czasu Seafile - https://www.seafile.com/en/home/. Jest to bardzo fajna chmura do postawienia na swoim serwerze, klient jest dość lekki, w odróżnieniu od innych chmur - nie przerzuca całych plików, ale jedynie dokonane zmiany. Do tego można sobie podłączyć do synchronizacji wiele lokalizacji/katalogów itp. Ja głównie używam linuksa i na nim to działa bez problemów.

A tak do brzegu ;) O ile mnie pamięć nie myli, to:

  1. na linuksie korzysta (jak wspomnieli przedmówcy) z mechanizmu inotify
  2. na windowsie ReadDirectoryChangesW - https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw
  3. na Apple - FSEvents

Natomiast zła wiadomość - nie kojarzę (oczywiście - może takie coś jest i ktoś podlinkuje) jakiegoś gloalnego mechanizmu/wrappera/frameworka, który by działał ponad systemem i miał w sobie ukryte szczegóły implementacyjne, a programiście oferował dostęp do jakiegoś API, które informuje o zmianach - niezależnie, na jakim OS to odpalisz. Także, obawiam się, że dla każdego systemy, który Cie interesuje, musiałbyś sobie napisać obsługę śledzenia takich zmian niezależnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1