Zamknąć plik - a po co??

0

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??

0

A ja ci mowie nie ucz sie jezyka z kursow tylko kup sobie ksiazke.

0

Czytałem też książkę ale w niej też nic nie znalazłem :P

0

Dla stylu :) :D

0

I tylko dla tego?? Nie ma to wpływu na programu??

0

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....

0

plik zamyka sie po to aby zwolnić pamięć i aby inne programy mogły mieć do niego dostęp

0

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.

0

plik nalezy zamknac z kilku powodow:

  1. zmiany w pliku sa dostepne dopiero po jego zamknieciu
  2. wielokrotnie istnieje potrzeba kilkukrotnego otwarcia pliku w roznym trybie (odczyt/zapis) - ponowne otwarcie pliku jest niemozliwe
  3. inne aplikacje moga nie miec dostepu do otwartego zbioru

jezeli nie zrobisz tego recznie to plik zamykany jest automatycznie po zamknieciu programu

0

No, wreszcie jakas rozsadna odpowiedz. Przyczepie sie tylko do tego:

plik nalezy zamknac z kilku powodow:

  1. 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.

0

Sprawa prosta.. Plik należy zamknąć z kilku powodów..

  • bufor pamięci który się zapełnia trzeba zamknąć bo niezamknięty <ort>spowodóje </ort>utrate danych i nie <ort>możniść </ort>w ich odczytaniu. (Dane zanim trafią na <ort>użądzenie </ort>wyjścia są kierowane do bufora - miejsce w pamięci)
  • kolejną przyczyną jest to że w późniejszym czasie możemy użyć wskaźnika do pliku

Te dwa powody zapewne wystarczają a <ort>trzexci </ort>to estetyka tak jak w <html></html>!!! :):) [nuda]

0

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 :)

0

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.

0

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

0

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. :>

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