Witam!!
Ostatnio zastanawiałem się po co się zamyka plik - w wszystkich kursach pisze coś w stylu "a teraz wypadałoby zamknąć ten plik" - a ja się pytam po co to??
Witam!!
Ostatnio zastanawiałem się po co się zamyka plik - w wszystkich kursach pisze coś w stylu "a teraz wypadałoby zamknąć ten plik" - a ja się pytam po co to??
A ja ci mowie nie ucz sie jezyka z kursow tylko kup sobie ksiazke.
Czytałem też książkę ale w niej też nic nie znalazłem :P
Dla stylu :) :D
I tylko dla tego?? Nie ma to wpływu na programu??
Tego nie wiem, ale chyba lepiej zamknac [cygaro]
Przynajmniej tak sie uczylem....
To tak samo jak kolega zaczal pisac tresc naszej klasowej strony ZA znacznikiem </html> :-D Fakt ze wyglada tak samo, ale jednak....
plik zamyka sie po to aby zwolnić pamięć i aby inne programy mogły mieć do niego dostęp
Wydaje mi się, że jest nałożony limit na ilość aktywnych deskryptorów dla jednego procesu. Dlatego powinno się je zamykać (niszczyć). Jeśli tego nie zrobisz i będziesz miał ich nadmiar, proces zostanie wstrzymany.
plik nalezy zamknac z kilku powodow:
jezeli nie zrobisz tego recznie to plik zamykany jest automatycznie po zamknieciu programu
No, wreszcie jakas rozsadna odpowiedz. Przyczepie sie tylko do tego:
plik nalezy zamknac z kilku powodow:
- zmiany w pliku sa dostepne dopiero po jego zamknieciu
To niezupelnie jest prawda. Zmiany w pliku sa widziane po kazdorazowym oproznieniu buforow wyjsciowych. Jesli wywolasz flush() to dane w pliku sie pojawia nawet jesli go nie zamkniesz. A jesli zapiszesz do pliku wiecej danych, to system zrobi flush() automatycznie, gdy mu sie skonczy miejsce w buforze i wtedy tez dane sie pojawia.
Gdzies tam jeszcze ktos pisal, ze liczba deskryptorow jest oganiczona iloscia pamieci. Fajnie by bylo, ale niestety w wiekszosci systemow liczba ta jest stala (na szczescie dosyc duza - zwykle ponad 16536). Podobnie liczba uchwytow w Windows jest ogranicona, liczba procesow / watkow itd.
Sprawa prosta.. Plik należy zamknąć z kilku powodów..
Te dwa powody zapewne wystarczają a <ort>trzexci </ort>to estetyka tak jak w <html></html>!!! :):) [nuda]
A ja twierdzę, że najważniejszym z powodów est to, że inne aplikacje mogą nie mieć dostępu do otwartego pliku - przykład:
Otwórz sobie plik w twoim progsie i spóbój go usunąć choćby spod explorera ...
... no właśnie :)
Akurat ten powod jest sluszny tylko w Windows. Wszystkie powazne systemy nie maja takich
upier***osci. W syst. Mac, Linux, Unix mozna skasowac otwarty plik.
Akurat ten powod jest sluszny tylko w Windows. Wszystkie powazne systemy nie maja takich
upier***osci. W syst. Mac, Linux, Unix mozna skasowac otwarty plik.
O tak, ale to niezupełnie zaleta. Kiedyś skasowałem we włączonym Linuxie wszystkie biny:P
O tak, ale to niezupełnie zaleta. Kiedyś skasowałem we włączonym Linuxie wszystkie biny:P
No to rzeczywiscie maly problem...
Jedna z glownych zasad pracy z komputerem "Don't work as root.".
Ale w druga strone jest duzo gorzej. Najbardziej mnie wnerwia, ze nie mozna nawet jako admin wylaczac procesow systemowych, albo podmieniac plikow systemowych. Paranoja. Windows wie zawsze lepiej. :>