Differences

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

Link to this comparison view

pc:laboratoare:01 [2022/02/27 23:35]
florin.mihalache [Exerciții]
pc:laboratoare:01 [2022/03/02 16:32] (current)
radu.ciobanu [4. Noțiuni generale C/C++] Reparat headerele din exemplu
Line 86: Line 86:
 ---- ----
  
-Va recomandam ​următorul [[https://​people.duke.edu/​~ccc14/​sta-663/​CrashCourseInC.html|crash course de C]] pentru a va reaminti concepte precum structuri, pointeri si alocarea de memorie.+Va recomandăm ​următorul [[https://​people.duke.edu/​~ccc14/​sta-663/​CrashCourseInC.html|crash course de C]] pentru a vă reaminti concepte precum structuri, pointeri si alocarea de memorie.
  
 === Compilare === === Compilare ===
Line 113: Line 113:
 === Apeluri de sistem pentru operații cu fișiere === === Apeluri de sistem pentru operații cu fișiere ===
  
-Vom folosi următoarele funcții pentru a interacționa cu fișierele pe Linux: open, close, read, write și lseek. API-ul lor este descris în manual ''​man read.2''​. Acestea lucrează cu ceea ce numim file descriptors(fd). Simplist, un file descriptor este un integer ce reprezintă un identificator în tabela de fișiere a unui program. De exemplu, dacă creăm deschidem un fișier, identificatorul ar putea fi numărul 4.+Vom folosi următoarele funcții pentru a interacționa cu fișierele pe Linux: open, close, read, write și lseek. API-ul lor este descris în manual ''​man read.2''​. Acestea lucrează cu ceea ce numim file descriptors (fd). Simplist, un file descriptor este un integer ce reprezintă un identificator în tabela de fișiere a unui program. De exemplu, dacă creăm deschidem un fișier, identificatorul ar putea fi numărul 4.
  
  
Line 127: Line 127:
 #include <​unistd.h>​ /* pentru open(), exit() */ #include <​unistd.h>​ /* pentru open(), exit() */
 #include <​fcntl.h>​ /* O_RDWR */ #include <​fcntl.h>​ /* O_RDWR */
-#include <errno.h> /* perror() */+#include <stdio.h> /* perror() */ 
 +#include <​errno.h>​ 
 +#include <​stdlib.h>​
  
 void fatal(char * mesaj_eroare) void fatal(char * mesaj_eroare)
Line 200: Line 202:
     * Un router într-o rețea     * Un router într-o rețea
     * Un middlebox într-o rețea care face deep packet inspection(DPI) pentru analiza traficului contra malware     * Un middlebox într-o rețea care face deep packet inspection(DPI) pentru analiza traficului contra malware
-  - **(3p)** Vrem să ne pregătim pentru a trimite date in format binar peste un mediu de transmisie. În fișierul de [[https://​gitlab.cs.pub.ro/​protocoale-de-comunicatie/​pcom-laboratoare-public/​-/​blob/​master/​lab1/​ex3.txt|aici]] avem un array de structuri de tipul ''​Packet''​ in format binar. Realizați un program în C/C++ care să citească array-ul cu elemente de tip ''​Packet''​ din acest fișier și să afișeze conținutul din payload al fiecărei intrări.<​code C>+  - **(3p)** Vrem să ne pregătim pentru a trimite date in format binar peste un mediu de transmisie. În fișierul de [[https://​gitlab.cs.pub.ro/​protocoale-de-comunicatie/​pcom-laboratoare-public/​-/​raw/​master/​lab1/​ex3.txt|aici]] avem un array de structuri de tipul ''​Packet''​ in format binar. Realizați un program în C/C++ care să citească array-ul cu elemente de tip ''​Packet''​ din acest fișier și să afișeze conținutul din payload al fiecărei intrări.<​code C>
    ​struct Packet {    ​struct Packet {
      ​char ​ payload[100];​      ​char ​ payload[100];​
pc/laboratoare/01.1645997734.txt.gz · Last modified: 2022/02/27 23:35 by florin.mihalache
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