Hogy lehet C-ben megnézni azt, hogy egy fájl megvan-e már nyitva írásra?
Azt olvastam, hogy ha egy fájl megvan nyitva írásra akkor a következő fopen-nek alapból NULL értéket kellene visszaadnia de nálam ugyanúgy megnyitja 2x írásra mind a két program.
Itt a két tesztem
(teszt.c)
FILE *fp = fopen("teszt.conf", "w");
if(fp == NULL) perror("fopen");
else printf("opened");
getchar();
fclose(fp);
(teszt2.c)
És a másikban ugyanez található mint a teszt.c-ben de ugyanúgy megtudja nyitni írásra.
Esetleg valamit át kellene állítani, hogy egy fájlt csak egyszer tudjon megnyitni írásra?
"de nálam ugyanúgy megnyitja 2x írásra mind a két program."
Még jó, hogy ..
Képzeld el egyí szerveren. Valaki megnyit egy számláló file-t és addig a többi sorbaáll?
Lockolni kell a file-t, tehát az a fontos csak, hogy opre szintjén ne írhassanak bele többen egyszerre, egyidejűleg.
Op.rendszertől is függ, de pl.:
"An exclusive create-and-open mode ("…x" suffix) for fopen. This behaves like O_CREAT|O_EXCL in POSIX, which is commonly used for lock files."
Vagy pl: flock(..)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!