[so] Tema 3 biblioteca dinamica

Catalin Iacob iacobcatalin at gmail.com
Sat Nov 25 14:41:33 EET 2006


M-am uitat prin teste (cineva a muncit destul de mult pentru ele 
multumim apropo) si m-am prins si eu ca diferenta shared/dynamic e doar 
in modul in care sunt apelate functiile din biblioteca si am vazut ca o 
apelati fara dlopen etc. deci ca si cum ar fi shared.

A aparut insa altceva. Am vazut si ca Makefile.checker care nu e sub 
controlul nostru foloseste gcc pt link lucru care imi interzice sa 
folosesc C++ pentru tema pe Linux( lucru care e cu atat mai bizar cu cat 
pe Win se poate deoarece cl tot cl se cheama si pt C si pentru C++ ).

Personal prefer C++ pentru multe avantaje din care cele mai importante 
ar fi: control mai bun al tipurilor si faptul ca are gata facute destul 
de multe lucruri care evita coborarea in low level si grija permanenta 
de a nu avea un buffer overflow(exemplu: vector expandabil, string etc).

Intrebare evidenta: se poate folosi C++? (de exemplu exista gata facut 
queue).
Daca se poate folosi C++:
a) cum facem cu Makefile.checker?
b) e vreo problema cu faptul ca queue<int> e un template daca e un 
membru al structurii Monitor pentru care se genereaza cod in .so? (ma 
gandesc ca n-ar trebui sa fie pentru ca la folosirea queue<int> se 
genereaza cod care sa existe in .so; dupa parerea mea ce nu se poate e 
ca Monitor definit de noi sa fie un template pentru ca nu ar genera cod 
in .so nefiind instantiat   -  e corect ce am spus aici? )

As avea rugamintea sa-mi raspundeti la intrebarea b) de mai sus chiar 
daca raspunsul va fi "nu poti folosi C++, implementeaza o coada ca nu-i 
asa de greu" fiindca mi se pare un lucru important de stiut pentru viitor.

Multumesc


Octavian Purdila wrote:
> On Saturday 25 November 2006 13:16, Catalin Iacob wrote:
>   
>> Citat din linkul Program Library Howto
>>
>> "Program libraries can be divided into three types: static libraries,
>> shared libraries, and dynamically loaded (DL) libraries.This paper first
>> discusses static libraries, which are installed into a program
>> executable before the program can be run. It then discusses shared
>> libraries, which are loaded at program start-up and shared between
>> programs. Finally, it discusses dynamically loaded (DL) libraries, which
>> can be loaded and used at any time while a program is running."
>>
>> In tema se spune in al doilea paragraf
>>
>> "Implementarea monitorului se va face intr-o biblioteca partajata
>> DINAMICA pe care o vor incarca firele de executie care doresc sa
>> foloseasca monitorul in scopul sincronizarii."
>>
>> Pe Linux trebuie sa facem un .so pe care sa-l link edit-am in executabil
>> deci practic un shared library in terminologia de mai sus? Bilblioteca
>> partajata dinamica ar sugera folosirea dlopen() dlclose() dlsym() deci
>> un dynamic library si nu cred ca se cere asta.
>>
>> Pe scurt: se vrea shared library sau dynamic library?
>>     
>
>
> Pentru formatele folosite azi (ELF, PE), nu exista diferente intre cele doua 
> clase. 
>
> tavi
>
>   



More information about the so mailing list