Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:laborator-02 [2019/02/27 21:50]
bogdan.purcareata [Exercițiul 3 - mcat - nit before installing /dev/nasty]
so:laboratoare:laborator-02 [2020/02/21 15:38] (current)
liza_elena.babu [Scrierea și citirea]
Line 139: Line 139:
 </​code>​ </​code>​
  
-Funcția [[http://​linux.die.net/​man/​2/​read|read]] întoarce numărul de octeți efectiv citiți, cel mult ''​count''​. Valoarea minimă este de ''​1''​ octet, iar când se ajunge la sfârșitul de fișier se va întoarce ''​0''​.+Funcția [[http://​linux.die.net/​man/​2/​read|read]] întoarce numărul de octeți efectiv citiți, ​**cel mult** ''​count''​. Valoarea minimă este de ''​1''​ octet, iar când se ajunge la sfârșitul de fișier se va întoarce ''​0''​.
  
 === write === === write ===
Line 149: Line 149:
 </​code>​ </​code>​
  
-Valoarea întoarsă este numărul de octeți ce au fost efectiv scriși, cel mult ''​count''​. În mod implicit nu se garantează că la revenirea din [[http://​linux.die.net/​man/​2/​write|write]] scrierea în fișier s-a terminat. Pentru a forța actualizarea se poate folosi [[http://​linux.die.net/​man/​2/​fsync|fsync]] sau fișierul se poate deschide folosind flagul ''​O_FSYNC'',​ caz în care se garantează că după fiecare write fișierul a fost actualizat.+Valoarea întoarsă este numărul de octeți ce au fost efectiv scriși, ​**cel mult** ''​count''​. În mod implicit nu se garantează că la revenirea din [[http://​linux.die.net/​man/​2/​write|write]] scrierea în fișier s-a terminat. Pentru a forța actualizarea se poate folosi [[http://​linux.die.net/​man/​2/​fsync|fsync]] sau fișierul se poate deschide folosind flagul ''​O_FSYNC'',​ caz în care se garantează că după fiecare write fișierul a fost actualizat.
  
 **Observație 1**:  **Observație 1**: 
Line 254: Line 254:
 </​code>​ </​code>​
 * dup * dup
-  * creaza ​o copie a unui file descriptor/ +  * crează ​o copie a unui file descriptor. 
-  * utilizeaza ​cel mai mic numar de descriptor neutilizat. +  * utilizează ​cel mai mic număr ​de descriptor neutilizat. 
-  * daca apelul ​reuseste, vechiul ​si noul file descriptor pot fi folositi, ei partajand ​file offset ​si file status flags.+  * dacă apelul ​reușește, vechiul ​și noul file descriptor pot fi folosiți, ei partajând ​file offset ​și file status flags.
  * dup2  * dup2
-   ​* ​asemanator ​dup, dar in loc sa se aleaga ​cel mai mic descriptor, acesta ​utilizeaza ​new_fd specificat. +   ​* ​asemănător ​dup, dar în loc să se aleagă ​cel mai mic descriptor, acesta ​utilizează ​new_fd specificat. 
-   ​* ​daca new_fd este deja fosit, acesta este mai intai inchis inainte ​de a fi reutilizat. +   ​* ​dacă new_fd este deja folosit, acesta este mai întâi închis înainte ​de a fi reutilizat. 
-   ​* ​daca old_fd nu este valid, apelul ​esueaza ​iar new_fd nu este inchis.+   ​* ​dacă old_fd nu este valid, apelul ​eșueaza ​iar new_fd nu este închis.
  
  
Line 269: Line 269:
 </​code>​ </​code>​
  
-Imaginea de mai jos prezinta ​utilizarea dup si dup2 in diferite ​situatii ​pentru o intelegere ​mai buna:+Imaginea de mai jos prezintă ​utilizarea dup și dup2 în diferite ​situații ​pentru o înțelegere ​mai bună:
  
  
Line 686: Line 686:
 [[https://​www.facebook.com/​groups/​240794072931431/​|facebook page]] [[https://​www.facebook.com/​groups/​240794072931431/​|facebook page]]
  
-==== Exercițiul 0 - Joc interactiv ==== 
- 
-    * Detalii desfășurare [[http://​ocw.cs.pub.ro/​courses/​so/​meta/​notare#​joc_interactiv|joc]]. 
  
 ===== Linux ===== ===== Linux =====
Line 743: Line 740:
 Inițializați fișierul ''/​dev/​nasty'':​ Inițializați fișierul ''/​dev/​nasty'':​
 <code bash> <code bash>
-sudo apt-get install linux-modules-$(uname -r)+sudo apt-get install linux-modules-$(uname -r) linux-headers-$(uname -r)
 ./​set_nasty.sh ./​set_nasty.sh
 </​code>​ </​code>​
Line 856: Line 853:
     *Studiați exemplele din {{so:​laboratoare:​pyfileoperations.zip|arhivă}},​ citiți documentația și observați diferențele între API-uri     *Studiați exemplele din {{so:​laboratoare:​pyfileoperations.zip|arhivă}},​ citiți documentația și observați diferențele între API-uri
  
-/* 
  
 ===== Soluții ===== ===== Soluții =====
Line 862: Line 858:
 [[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab02-sol.zip | lab02-sol.zip]] [[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab02-sol.zip | lab02-sol.zip]]
  
-*/+
  
 ===== Resurse utile ===== ===== Resurse utile =====
so/laboratoare/laborator-02.1551297014.txt.gz · Last modified: 2019/02/27 21:50 by bogdan.purcareata
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0