Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Linux/Unix ::  fork()     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
computernerds
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2017
Beiträge: 165
Beitrag computernerds Mitglied 03:18:41 16.11.2017   Titel:   fork()            Zitieren

Hallo,

stimmt es dass bei ls ein fork() ausgefuehrt wird ?
Ich find fork() lustig. Alles wird kopiert, aber alles was vor fork() kam, wird eh nicht mehr ausgefuhert.
Wade1234
Unregistrierter




Beitrag Wade1234 Unregistrierter 11:31:58 16.11.2017   Titel:              Zitieren

ja bei ls wird ein fork ausgeführt, bei allem anderen auch.
aber was ist daran so lustig, dass der programmcode getauscht wird? sind schon wieder schulferien oder so?
computernerds
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2017
Beiträge: 165
Beitrag computernerds Mitglied 12:56:41 16.11.2017   Titel:              Zitieren

fork() wird benutzt um einen Prozess zu duplizieren. Warum muss bei ls ein fork aufgerufen werden. Versteh ich nicht. Wuerde ja bedeuten ls laeuft als eigener prozess. Oder wird nur ein Thread erzeugt ?
computernerds
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2017
Beiträge: 165
Beitrag computernerds Mitglied 13:05:21 16.11.2017   Titel:              Zitieren

Zitat:

Fork wird auch genutzt, um andere Programme (also keine Kopien des aufrufenden Programms) zu starten.
Hierzu ruft nach dem Fork einer der Prozesse (in der Regel der Kindprozess) einen entsprechenden Befehl (z. B. execve) auf,
wodurch der aufrufende Prozess durch das gewünschte Programm ersetzt wird.
Ein Beispiel: der Benutzer hat eine Shell geöffnet und möchte sich mittels des Befehls ls den aktuellen Verzeichnisinhalt anzeigen lassen.


verstehn tu ich das trotzdem nicht. Die Shell erzeugt eine kopie von sich nur um ls auszufuehren. hm.
Ein kind prozess ist doch total unabhaengig. hat mit dem elternprozess nichts mehr zu tun, Wenn ich den Eltern prozess loesche passiert nichts.


Zuletzt bearbeitet von computernerds am 13:12:32 16.11.2017, insgesamt 4-mal bearbeitet
Wade1234
Unregistrierter




Beitrag Wade1234 Unregistrierter 13:08:21 16.11.2017   Titel:              Zitieren

wie soll das denn sonst laufen? meinst du, dass du in der shell sowas hast

C:
if(!strcmp(command, "ls"))
{
     //mach was
}


und bei jeden neu hinzugefügten kommando alles neu compiliert werden soll?

mit fork rufst du dann ganz bequem das programm "ls2", "cd2" oder was auch immer auf und hast maximale flexibilität, ohne die shell selbst verändern zu müssen.
computernerds
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2017
Beiträge: 165
Beitrag computernerds Mitglied 14:03:26 16.11.2017   Titel:              Zitieren

Hab das gerade gelesen. Wie ist das zu verstehen.

Zitat:

Linux Betriebssystem läuft dank seiner Architektur immer gleich schnell.
C++ Forum :: Linux/Unix ::  fork()   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.