Jakiś czas temu próbowałem tworzyć kopię zapasową pliku INI, który właśnie został zaktualizowany 2 linijki kodu wyżej i czego bym nie zrobił, wykonanie kopii zapasowej nigdy nie udawało się (plik nie zawierał wcześniej wprowadzonych zmian).
Próbowałem nawet jakichś dziwnych sposobów z użyciem funkcji Sleep, ale nic nie dawało rezultatów, ostatecznie z braku dalszych pomysłów (i nie aż tak ważnej roli tego kodu) porzucilem pomysł na wykonywanie tychże kopii zapasowych.
Dzisiaj zupełnie przypadkowo zobaczyłem na jakiejś stronie wywołanie funkcji WritePrivateProfileString z wszystkimi parametrami ustawionymi na NULL i jak się okazało to było to czego kiedyś szukałem – konkretnie powoduje zapisanie zmian wprowadzonych do pliku INI na dysk lub do rejestru (jeśli plik jest mapowany).
Zgodnie z dokumentacją na stronie MSDN, pliki INI są cache’owane, aby zwiększyć wydajność działania systemu operacyjnego.
Morał z tej historii taki, że jak już się czyta dokumentację, to nie należy kończyć na opisie parametrów i zwracanych wartościach 🙂