Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako zakljucati fajl u C-u?

[es] :: C/C++ programiranje :: Kako zakljucati fajl u C-u?

[ Pregleda: 2371 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nikolavlasotince
Nikola Stojiljkovic
Vlasotince/Beograd

Član broj: 139391
Poruke: 109
*.dynamic.sbb.rs.



+1 Profil

icon Kako zakljucati fajl u C-u?28.12.2011. u 02:59 - pre 149 meseci
Zdravo,

Interesuje me da li postoji neki nacin da se zakljuca fajl preko C-a za druge procese, dok je pokrenut program (recimo)?

Mislio sam da fopen("ime_fajla", "w") lock-uje fajl tako da ostali procesi ne mogu da pisu nista u njemu, ali sam napravio jedan program koji koristi isti fajl (dok je prethodni koji je takodje otvorio trenutni fajl pokrenut) i pise u njemu neki text, nakon zatvaranja oba programa (prvo ovaj sto pise text), text se nalazi u fajlu.

Da li postoji neki nacin da se zabrani pisanje u fajlu za druge procese?

Googlao sam i navodno postoje neke funkcije oblika flockfile, flock i slicno (koje rade samo na linux-u, nisam siguran da rade mada tvrde ljudi :) ), ali mene interesuje da li postoji nesto slicno za "sve" OS-ove (tj. vise OS-a) ili uopste samo za windows?

Da li je moguce nekako otvoriti fajl ekskluzivno?

P. S. Ako je neko radio nesto slicno i na linux-u dobro bi mi doslo i to za pocetak.

Pozdrav
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: Kako zakljucati fajl u C-u?28.12.2011. u 21:57 - pre 149 meseci
ANSI C ne poznaje termin zakljucavanja fajla vec moras da koristis API operativnog sistema koji koristis. Windows to radi preko CreateFile() dok Unixi koriste fcntl(), flock(), lockf() - upravo funkcije koje si nasao.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Kako zakljucati fajl u C-u?29.12.2011. u 09:56 - pre 149 meseci
Zar ne bi najjednostajvniji fopen zaključao datoteku tj. dao je toj aplikaciji na ekskluzivno korištenje?
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Kako zakljucati fajl u C-u?29.12.2011. u 10:14 - pre 149 meseci
Sad sam pogledao kod. U Visual Studiu 2008 kad pozoveš fopen i sa F11 uđeš u funkciju vidi se da zapravo iz _tfopen pozivaš _tfsopen sa opcijom _SH_DENYNO. Ova opcija nikome ne brani otvaranje istog fajla. Ako u VS želiš zaključavanje onda pozovi _tfsopen sa opcijom _SH_SECURE.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Kako zakljucati fajl u C-u?29.12.2011. u 10:33 - pre 149 meseci
Hm, ovo gore je iz helpa za Visual Studio 6, a u novijim verzijama više ne spominju _SH_SECURE, ali je opcija _SH_DENYWR i dalje prisutna. Pored _fsopen tu je i kombinacija _sopen_s/_fdopen/flose koja je kao primer data u helpu za _fdopen. U tom primeru zameni (_O_RDONLY, _SH_DENYNO) sa nečim što tebi odgovara, ponajpre _SH_DENYWR umesto _SH_DENYNO.
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.opera-mini.net.



+1 Profil

icon Re: Kako zakljucati fajl u C-u?29.12.2011. u 21:30 - pre 149 meseci
Koja je prednost koristiti _open funkcije umesto CreatFile() koja je deo winapi-ja?
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Kako zakljucati fajl u C-u?30.12.2011. u 09:14 - pre 149 meseci
Kad je funkcija deo standarda onda postoji i na Linuxu, i na Windowsu, i bilo gde drugde. Isti kod će se kompajlirati (bez većih problema) na bilo kom operativnom sistemu.
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: Kako zakljucati fajl u C-u?30.12.2011. u 15:47 - pre 149 meseci
Zar u Visual C++-u funkcije koje imaju podcrtu na pocetku nisu MS ekstenzije? Ne vidim da postoje istoimene na Linuksu. Zato i mislim da ne postoji prenosivo resenje u standardnom C-u za zakljucavanje fajlova.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako zakljucati fajl u C-u?

[ Pregleda: 2371 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.