[so] File locking

Adrian Scoica adrian.scoica at gmail.com
Wed Mar 9 12:24:49 EET 2011


Am o curiozitate si nu am reusit sa dau de un raspuns pana acum (probabil
nici nu caut ce trebuie).

Propun urmatorul scenariu:
* rulez ./a.out care imi scrie un output text in fisierul out.txt
* pentru ca output-ul este foarte mare si are linii lungi, sa zicem ca il
deschid in gedit
* uit ca a ramas deschis, mai editez putin sursa si vreau sa testez din nou.
In acest sens, rulez din nou ./a.out, care imi genereaza din nou out.txt
* cand ma intorc in gedit, editorul ma avertizeaza ca fisierul original de
pe disk s-a schimbat, si ma intreaba daca vreau sa ii dau refresh.

Intrebarea:
   Cum anume (si ma refer la implementare) isi da seama gedit ca fisierul
s-a schimbat?

Este destul de clar ca gedit pastreaza in RAM o copie a fisierului deschis.
Mai mult, daca m-am uitat corect cu watch, fisierele nu sunt pastrate
deschise. In aceste conditii, cum afla procesul ca fisierul original s-a
modificat intre timp?

Daca ar verifica el periodic, ar fi foarte ineficient, dar altfel ar trebui
sa fie instiintat din exterior. Daca nu tine fisierele deschise, atunci ar
trebui sa se inscrie el singur sa primeasca instiintari, pentru ca sistemul
n-ar putea sa isi dea seama daca un proces vrea instiintari pentru un fisier
pe care deja inchis.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20110309/fe496039/attachment.htm>


More information about the so mailing list