Fragen zu den Details, wie ein Programm Systemaufrufe verwendet, um mit der Kernel-API zu interagieren, welche Aufrufe verfügbar sind, wie sie funktionieren usw.
Ich würde gerne wissen, was der Unterschied zwischen einem Bibliotheksaufruf und einem Systemaufruf unter Linux ist. Alle Hinweise für ein gutes Verständnis der Konzepte hinter beiden werden sehr geschätzt.
Ich möchte den Unterschied zwischen fork () und vfork () im Detail verstehen. Ich konnte die Manpage nicht vollständig verdauen. Ich möchte auch einen Kommentar meiner Kollegen klarstellen: " In aktuellem Linux gibt es kein vfork (), auch wenn Sie es aufrufen, wird es intern fork () aufrufen ."
Gibt es eine Entsprechung zu den Funktionen -Tund der -UOption des trussSolaris-Dienstprogramms unter Linux? Diese sollen einen Systemaufruf ( -T) oder eine Bibliotheksfunktion ( -U) angeben, die beim Aufrufen durch die verfolgte Anwendung zum Anhalten führen würde. Andernfalls möchte ich, dass jeder Prozess, der von einer verfolgten Anwendung gestartet wird, …
Aus der Manpage von vfork(): vfork () unterscheidet sich von fork () dadurch, dass das übergeordnete Element angehalten wird, bis das untergeordnete Element einen Aufruf zum Ausführen von (2) oder _exit (2) ausführt. Das Kind teilt den gesamten Speicher mit seinem Elternteil, einschließlich des Stapels, bis execve () vom Kind …
Nach meinem Verständnis gibt es für die Bearbeitung von Dateien unter Linux nur den sys_write-Syscall, der den Dateiinhalt überschreibt (oder ihn erweitert, wenn am Ende). Warum gibt es unter Linux keine Systemaufrufe zum Einfügen oder Löschen von Inhalten in Dateien? Da bei allen aktuellen Dateisystemen die Datei nicht in einem …
Geschlossen. Diese Frage ist nicht zum Thema . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so dass es beim Thema für Unix & Linux - Stack von Exchange. Geschlossen vor 7 Jahren . Ich möchte einen bestimmten neuen Systemaufruf im Linux-Kernel 3.2.x hinzufügen, …
Ich habe die Antwort auf diese Frage durchgesehen, verstehe aber den Unterschied zwischen Systemaufrufen und Bibliotheksfunktionen nicht ganz. Was ist konzeptionell der Unterschied zwischen den beiden?
Wenn ich den Befehl stracemit dem Flag verwende -T, möchte ich wissen, mit welcher Zeiteinheit die in Syscalls verbrachte Zeit angezeigt wird. Ich gehe davon aus, dass es in Sekunden sein sollte, aber ich bin mir nicht ganz sicher und es scheint im Handbuch weggelassen zu sein.
Beim Lesen des Linux-Quellcodes und insbesondere des Systemaufrufcodes stieß ich auf die sys_rebootImplementierung: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } In der Mitte befindet sich dieser spezielle Code: 209 210 /* For safety, we …
Smalltalk als Hintergrund EINTRist der Fehler, den sogenannte unterbrechbare Systemaufrufe zurückgeben können. Wenn ein Signal auftritt, während ein Systemaufruf ausgeführt wird, dieses Signal nicht ignoriert wird und ein Signalhandler dafür definiert wurde, der SA_RESTARTnicht gesetzt ist, und dieser Handler dieses Signal verarbeitet, gibt der Systemaufruf den EINTRFehlercode zurück. Als Randnotiz …
Ich lerne etwas über die Befehle fork () und exec (). Es scheint, als würden fork () und exec () normalerweise zusammen aufgerufen. (fork () erstellt einen neuen untergeordneten Prozess und exec () ersetzt das aktuelle Prozessabbild durch ein neues.) In welchen Szenarien können Sie jedoch jede Funktion für sich …
Gibt es eine Möglichkeit, die Anzahl oder Liste der Systemaufrufe abzurufen, die vom derzeit ausgeführten Linux-Kernel unterstützt werden? Ich möchte also einen Weg finden, die Syscall-Tabelle eines laufenden Kernels zu "lesen".
Wenn ltrace zum Verfolgen der Systemaufrufe verwendet wird, konnte ich sehen, dass fork () sys_clone () anstelle von sys_fork () verwendet. Aber ich konnte die Linux-Quelle nicht finden, wo sie definiert ist. Mein Programm ist #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } …
Ich habe eine Anwendung, die eine Datei liest. Nennen wir es Prozessname und die Datei ~ / .configuration . Wenn der Prozessname ausgeführt wird , lautet er immer ~ / .configuration und kann nicht anders konfiguriert werden. Es gibt auch andere Anwendungen, die vor und nach "~ / .configuration" auf …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.