Anzeige:
Ergebnis 1 bis 15 von 17

Thema: c++, system-calls - was sind vor/nachteile?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2004
    Beiträge
    63

    c++, system-calls - was sind vor/nachteile?

    hi
    ich schreibe gerade an einer programmieruebung (keine angst - keine hausaufgaben oder so - die aufgabe habe ich mir selber gestellt), und da gibt es 2 funktionen die man sehr einfach schreiben kann wenn man system() calls verwendet. jetzt habe ich erst neulich 2 sehr verschiedene meinungen ueber systemcalls gehoert.
    was sind die vor und nachteile von systemcalls? sollte man sie normalerweise moeglichst umgehen, oder ist es in ordnung wenn man sie verwendet?
    gruss
    luh

  2. #2
    Registrierter Benutzer Avatar von dra
    Registriert seit
    02.11.2004
    Ort
    Ulm
    Beiträge
    29
    Hi luh!

    Also der Vorteil von system calls liegt in der Geschwindigkeit. Dieser Vorteil ist aber verschwindend gering, zumal die Bibliotheken in den meisten Fällen nur einen (optimierten) Wrapper dafür bereitstellen.

    Der Nachteil ist auf jeden Fall die Systemabhängigkeit (nicht Plattformabhängigkeit). Wenn du z. B. auf Linux mit der glibc programmierst, dann wird sich dieser Code auch nur auf Linux kompilieren lassen.

    Wenn du also möglichst viele Systeme abdecken möchtest, dann benutz die Bibliotheken, die den jeweiligen Zweck erfüllen.

    Gruß,
    dra
    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.07.2004
    Beiträge
    63
    danke dra
    luh

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    system() benutzt zwar Systemcalls, aber ist selber keiner

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Hmmm..

    Ich glaub da bahnt sich eine Verwechslungstragödie an...

    Ein System-Call ist != einem system(char* str) aufruf ;-)
    Systemcalls benüzen low-level bibliotheken um mit dem Kernel zu kommunizieren, was natürlich nicht über direkte funktionsaufrufe gehen kann.

    Ein call auf die Funktion system() hingegen führt ein anderes programm aus, genau einzelheiten was da genau passiert weiß nur der liebe gott und anda_skoa ;-)
    Geändert von Lin728 (21-08-2017 um 14:22 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.02.2004
    Beiträge
    113
    Zitat Zitat von ceisserer
    Ein call auf die Funktion system() hingegen führt ein anderes programm aus, genau einzelheiten was da genau passiert weiß nur der liebe gott und anda_skoa ;-)
    Und die Manualpage zu system(2)...

    Gruß,
    /dev

  7. #7
    Registrierter Benutzer Avatar von dra
    Registriert seit
    02.11.2004
    Ort
    Ulm
    Beiträge
    29
    Zitat Zitat von ceisserer
    Ich glaub da bahnt sich eine Verwechslungstragödie an...
    Good point.

    luh: Meinst du system calls oder Aufrufe von system()?

    Cheers,
    dra
    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •