Linux-API???

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
osta
Beiträge: 87
Registriert: 08.09.2004 11:48
Wohnort: Morsbach (Am Arsch der Welt)
Kontaktdaten:

Linux-API???

Beitrag von osta »

Hi
Frage eines Newbies:

In Windows wird alles durch die WinAPI (also DLLs) gesteuert.
Wie läuft das in Linux? Hat man da auch so viele OS-DLLs und steuert alles (GUI etc.) über API? Und was ist GTK und so?
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

In Linux ist das ganze nicht so Zentral, es gibt Literatur zu GTK, SDL, Glib usw. Für Gadgets ist normallerweise GTK zuständig. Die dortigen API-Aufrufe sind meist genauso vordeklariert wie unter Windows. Ist nicht leichter, aber auch nicht schwerer und man kommt auf Dauer nicht dran vorbei :wink:
Zuletzt geändert von ts-soft am 16.09.2005 11:06, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hab Dir mal ein einfaches Beispiel zusammengestellt:

Code: Alles auswählen

; GetEnvironment Linux:
Procedure.s GetEnv(Name.s)
  Protected *ptrResult.l, Result.s
  *prtResult = getenv_(Name)
  If *prtResult
    Result = PeekS(*ptrResult)
    g_free_(*ptrResult)
  EndIf
  ProcedureReturn Result
EndProcedure

; GetEnvironment Windows:
Procedure.s GetEnv(szVariable.s)
  Protected Length.l, Buffer.s
  Length = GetEnvironmentVariable_(@szVariable, @Buffer, 0)
  If Length
    Buffer = Space(Length)
    GetEnvironmentVariable_(@szVariable, @Buffer, Length)
    ProcedureReturn Buffer
  EndIf
  ProcedureReturn ""
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag von Eric »

Die Kernelfunktionen werden normalerweise über den Interrupt 80h aufgerufen.
Die anderen Sachen befinden sich in shared libs (*.so)
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
Antworten