This shows you the differences between two versions of the page.
cpl:labs:12 [2017/01/11 01:01] bogdan.nitulescu [Exerciții de laborator (11p)] |
cpl:labs:12 [2017/01/11 01:06] (current) bogdan.nitulescu [Exerciții de laborator (15p)] |
||
---|---|---|---|
Line 207: | Line 207: | ||
======= Exerciții de laborator (15p) ======= | ======= Exerciții de laborator (15p) ======= | ||
- | În rezolvarea laboratorului folosiți arhiva de sarcini {{:cpl:labs:lab11-tasks.zip|}}. | + | În rezolvarea laboratorului folosiți arhiva de sarcini {{:cpl:labs:lab12-tasks.zip|}}. |
Pe măsura ce rezolvați exercițiile, nu uitați că modificarea optiunilor compilării implică și recompilarea fișierelor sursă. | Pe măsura ce rezolvați exercițiile, nu uitați că modificarea optiunilor compilării implică și recompilarea fișierelor sursă. | ||
Line 311: | Line 311: | ||
Modificați scriptul de linker din cadrul directorului pentru a introduce o secțiune de date specială ''.cpl'' care să adune secțiunile ''.cpl'' din fiecare fișier obiect de intrare, conform **TODO-ului** din script (revedeți secțiunea [[http://ocw.cs.pub.ro/courses/cpl/labs/11#provide|PROVIDE]]). Apoi, în cadrul fișierului ''main.c'', exportați două simboluri pentru începutul și sfârșitul acestei secțiuni și iterați prin toți pointerii, apelând pe rând funcția către care aceștia trimit (puteți pasa orice întreg ca parametru). | Modificați scriptul de linker din cadrul directorului pentru a introduce o secțiune de date specială ''.cpl'' care să adune secțiunile ''.cpl'' din fiecare fișier obiect de intrare, conform **TODO-ului** din script (revedeți secțiunea [[http://ocw.cs.pub.ro/courses/cpl/labs/11#provide|PROVIDE]]). Apoi, în cadrul fișierului ''main.c'', exportați două simboluri pentru începutul și sfârșitul acestei secțiuni și iterați prin toți pointerii, apelând pe rând funcția către care aceștia trimit (puteți pasa orice întreg ca parametru). | ||
===== BONUS ===== | ===== BONUS ===== | ||
- | === 1 cpl karma - LD_PRELOAD === | ||
Scopul acestui exercițiu este de a suprascrie o funcție de bibliotecă (similar ca la exercițiul 3). | Scopul acestui exercițiu este de a suprascrie o funcție de bibliotecă (similar ca la exercițiul 3). | ||
Line 317: | Line 316: | ||
Implementați acest lucru folosindu-vă de variabila de mediu ''LD_PRELOAD''. | Implementați acest lucru folosindu-vă de variabila de mediu ''LD_PRELOAD''. | ||
- | === 1 cpl karma - rpath === | ||
Refaceți exercițiul 2 fără a folosi variabila de mediu ''LD_LIBRARY_PATH''. | Refaceți exercițiul 2 fără a folosi variabila de mediu ''LD_LIBRARY_PATH''. |