<div dir="ltr">2016-03-09 12:18 GMT+02:00 Călin Cruceru <<a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a>>:<br>> 2016-03-09 12:15 GMT+02:00 Călin Cruceru <<a href="mailto:crucerucalincristian@gmail.com">crucerucalincristian@gmail.com</a>>:<br>>> Salut,<br>>><br>>> Pornind de la unul dintre exercițiile din laboratorul 2[1] (Linux -<br>>> Troubleshooting) am observat un comportament al lui open()[1] pe care<br>>> nu îl înțeleg pe deplin.<br>>><br>>> Am experimentat cu codul de la [3].  Să presupunem că fișierul "test"<br>>> nu există atunci când se rulează programul.  Comportamentul care mi se<br>>> pare ciudat este legat de faptul că primul apel write() se termină cu<br>>> succes - în mod surprinzător pentru mine, iar al doilea failează - așa<br>>> cum mă aștept.<br>>><br>><br>> Aici am vrut să zic că al doilea apel open() failează; nu se ajunge la<br>> al doilea write().<br>><br>>> În timp ce scriam acest e-mail am citit în manualul open()[2], la<br>>> flag-ul O_CREAT, următorul lucru:<br>>><br>>> O_CREAT - [...]; the open() call that creates a read-only file may<br>>> well return a read/write file descriptor.<br><br>Înainte de fraza asta, în manual mai scrie: "<b>Note that this mode applies only to future accesses of the newly created file</b>; the open() call that creates a read-only file may well return a read/write file descriptor.". Cum văd eu asa: am făcut open care creează un fișier cu niște permisiuni (date de mode), dar acum permisiunile pe file descriptorul returnat de open am permisiunile date de flaguri. Mi se pare destul de clar comportamentul.<div><br></div><div>Roberta<br><br></div></div>