Oczywiście, natychmiastową odpowiedzią dla większości sytuacji jest "tak" i jestem głęboko przekonany, że proces powinien poprawnie oczyścić wszelkie zasoby, które przeznaczył, ale to, co mam w mojej sytuacji, to długo działający demon systemu która otwiera ustaloną liczbę deskryptorów plików przy starcie i zamyka je wszystkie przed wyjściem.Czy przed zamknięciem należy zamknąć deskryptory plików?
Jest to osadzona platforma i staram się, aby kod był jak najbardziej kompaktowy, nie wprowadzając żadnego złego stylu. Ale ponieważ deskryptory plików są zamykane przed zakończeniem, czy ten kod czyszczenia deskryptora pliku służy w jakimkolwiek celu? Czy zawsze zamykasz wszystkie swoje deskryptory plików?
To nie mówi nic o innych deskryptorach plików, tylko std {in, out, err} i tmpfiles. –
@Paul, dobry. Ale poza strumieniami, wydaje mi się, że jest to platforma specyficzna. –
POSIX mówi: Wszystkie deskryptory plików, strumienie katalogów, deskryptory konwersji i deskryptory katalogów komunikatów otwarte w procesie wywoływania powinny zostać zamknięte [przez exit(), _exit(), _Exit()]. Ale nadal ma to zastosowanie do hostowanych implementacji - nie do osadzenia, koniecznie. –