Question | Answer |
Programmausführung Shell-Programmierung | Quellcode, Eingabe > Interpreter > Ausgabe |
Programmausführung C-Quellcode: Detail | Quellcode > Compiler > Maschinencode Maschinencode > Linker > Executable Eingabe > Executable > Ausgabe |
Programmausführung C-Quellcode: Einzelschritte | 1. Kompilieren: gcc -c main.c 2. Linken: gcc main.o -o my_prog 3. Ausführen: ./my_prog |
Makefile | Dient zu einfacherem Übersetzen von Programmdateien (automatisch). Liest und interpretiert Inhalt der "Makefile" Konsolenkommando 'make' verarbeitet Datei Makefile im aktuellen Verzeichnis |
Was ist ein Pointer? | Variable, die die Startadresse von Daten im RAM kennt |
Operatoren für Pointer in C | &: Liefert Speicheradresse eines Datenobjekts *: liefert/ändert den Inhalt einer Speicheradresse |
Was bedeutet Datentyp *pointer = Speicheradresse; ? | pointer = Adresse, worauf Pointer zeigt &pointer = Speicheradresse auf Heap *pointer = Wert, der an Pointer-Adresse abgelegt ist (= "Dereferenzierung") |
Bei Programmstart sind gewöhnlich 3 Zugriffe geöffnet. Wofür stehen jeweils 0, 1, 2? | 0: Standard-Eingabe 1: Standard-Ausgabe 2: Standard-Fehler |
Was soll die Standard-I/O-Bibliothek mit der Header-File stdio.hdarstellen? | Interface zu Low-Level-Systemaufrufen. Zugang zur Datei "filename", Stream als Pointer auf FILE * zuordnen. auch: fclose |
Wozu dient die Fork-Funktion? (!) | Erzeugt einen Klon des aufrufenden Prozesses. Bis auf Datenraum, Umgebung, File-Handles ist Klon identisch zu Original. => Kindprozess kennt alle vor fork() definierten Größen und fährt an gleicher Stelle fort |
Was machen die Funktionen 'wait' und 'waitpid'? | Prozesse, die mit fork erzeugt werden, laufen unabhängig voneinander weiter. Mit den Funktionen wait und waitpid kann der Originalprozess warten, bis ein Kindprozess beendet ist. wait: beliebig, waitpid: nur pid-Prozess |
Macros zur Ermittlung des Beendigungsstatus mittels status_loc? | WIFEXITED(status_loc) = true, wenn Kindprozess sich normal beendete WEXITSTATUS(status_loc) = Exit-Code, fallse WIFEXITED true WIFSIGNALED(status_loc) = true, wenn Kindprozess anormal beendet wurde |
Was sind die Eigenschaften von Pipes? | Können nur zwischen Prozessen mit gleichen Vorfahren eingerichtet werden. Pipes sind halbduplex, d.h. Daten können immer nur in eine Richtung fließen. |
Wie wird eine Pipe im Kernel eingerichtet? | #include <unistd.h> int pipe(int fd[2]); Rückgabewerte: 0 (Erfolg), -1 (Fehler) fd[0]: Lesen aus der Pipe fd[1]: Schreiben in die Pipe |
(Normale) Pipes können nur zwischen Prozessen verwendet werden, wenn ein gemeinsamer Vorfahr die Pipe erzeugt hat. Wie können Daten zwischen beliebigen Prozess ausgetauscht werden? | Mit FIFOs oder named pipes. mkfifo legt eine Datei mit gegebenem Pfadnamen an. Fkt.: open, read, ... Oft zum Datenaustausch zwischen Clients und einem Server verwendet. |
Was sind Semaphoren? | Semphoren sind postive, ganze Zahlen, deren Wert mittels atomarer Operationen (up, down) geändert wird. Sie steuern den Zugang zu kritischen Regionen im Programm. |
Want to create your own Flashcards for free with GoConqr? Learn more.