LINUX libraries

Tags:    linux

Hejsa folkens

Tænkte om i kunne hjælpe mig med at få klargjort noget angående libraries i linux.

-Jeg har lavet et library som læser og skriver data til 2 drivere som i fællesskab styrer noget
temperatur styrings hardware.
-Jeg har lavet 2 forskellige userspace programmer som begge skal have mulighed for at opsætte
hardwaren og læse diverse data.

Mit spørgsmål er nu om det er muligt at sørge for at disse 2 userspace programmer begge tilgår det samme library.
Jeg har på nuværende tidspunkt de to programmer til at køre med at de loader LIB'et som et dynamic library. Men når jeg sætter en værdi i librariet via program1 til f.eks. x = 10 og jeg derefter gerne vil læse denne værdi via librariet til program2 som x = 10, sker dette ikke.

Er det overhovedet muligt at bruge libraries til dette????

Hvis JA hvordan???
hvis NEJ hvad er så smart at gøre(og let)???

Med de venligste udvikler hilsner

Michael Ebbesen




3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hejsa Michael.

Med fare for at dumme mig vil jeg udtale mig om noget jeg ikke kender ... Linux.
Jeg ved at Linux har noget der vist nok hedder .so ... en parallel til windoze dll.
Shared Object skulle det betyde, men jeg tror bare at det er object koden der bliver shared,
og ikke stack og andre körsels relevante ting omkring biblioteket.
Dvs koden loades kun en enkelt gang , og holdes et sted i hukommelse, men
for hver "bruger" oprettes der noget bruger space til vars osv, så der ikke kommer konflikter,
hvilket det som du beskriver jo egentligt er.

Om man kan slå det fra, og lave en .so statisk (for at bruge Java terminologi) ved jeg ikke.

Hvis man ikke kan så ville jeg nok vælge en af disse 2 muligheder som jeg lige kan få öje på:

1) Lav det i Java .. og start alt ud fra samme process (en og samme JVM), så du kan dele statiske objecter imellem tråde.

2) Lav dit bibliotek om til en deamon/service/process .. og brug Sockets eller andet interface til at snakke fra flere programmer til samme deamon/service/process.
(Er der ikke noget der hedder Named Pipes i Unix/Linux som er egnet til den slags internt program snak ?!?)

Håber jeg ikke vildleder mere end jeg kan give frisk input.
Held og lykke.[Redigeret d. 15/05-03 03:27:39 af Jonatan Hertel]



Hejsa J

Super tak for dit svar. Jeg har en anelse om du nok har ret med at man ikke kan dele :o(
Jeg vil overveje dit forslag om pipes medmindre andre siger det er muligt med statiske. Men igen mange tak for tiden.
Så du står jo nok snart til nogle point :)

Mvh Mig



Hvor skriver du din "x" variabel til? hvis det er memory er der forskellige teknikker til at dele data i memory.

Såsom Shared Memory... søg lidt omkring efter det...

---

Det findes også statiske libs på linux, de hedder .a (.la) og skal linkes ind i dit program.




t