Archiv verlassen und diese Seite im Standarddesign anzeigen : <sys/*> - Sinn und Zweck?
Hey Amigos, wie geht's?
Nach der Lektüre von diesem (http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html) frage ich mich nun: Warum werden teilweise recht wichtige Funktionen/Funktionalitäten nicht direkt unter /usr/include, sondern unter sys/ definiert?
Vielen Dank für eure Antworten!
Gruß,
/dev
SeeksTheMoon
25-04-2005, 09:50
in sys befinden sich systemabhängige Sachen, bzw Sachen zur Systemprogrammierung. Die befinden sich nicht im Standard-include, weil es weder Standard-C Header, noch Header von irgendeinem einem Zusatz-Programm sind.
socket.h, mount.h, elf.h usw wirst Du bestimmt nicht auf anderen Systemen finden (zumindest nicht unter Unix-Systemen)
in sys befinden sich systemabhängige Sachen, bzw Sachen zur Systemprogrammierung. Die befinden sich nicht im Standard-include, weil es weder Standard-C Header, noch Header von irgendeinem einem Zusatz-Programm sind.Soweit kann ich es noch unterschreiben, jedoch
socket.h, mount.h, elf.h usw wirst Du bestimmt nicht auf anderen Systemen finden (zumindest nicht unter Unix-Systemen)Warum nicht? Sowohl Sockets wie erst recht das Mounten dürften doch UNIX-weit gültig sein?
Gruß,
/dev
peschmae
25-04-2005, 18:06
da war wohl entweder ein nicht zuwenig :D
MfG Peschmä
SeeksTheMoon
25-04-2005, 18:51
ja, da habe ich mich vertippt; es sollte jetzt klar sein was ich gemeint habe :D
Ich hab jetzt eine Zwischenfrage: Warum eigentlich bietet die GNU libc eine Funktion mount()? Das Mounten ist ja sowieso kernelspezifisch und hat daher in der libc doch nix verloren, oder irre ich da?
Gruß,
/dev
peschmae
27-04-2005, 06:24
Ich hab jetzt eine Zwischenfrage: Warum eigentlich bietet die GNU libc eine Funktion mount()?
Weil das irgendjemand mal gebraucht und eingebaut hat...
Das Mounten ist ja sowieso kernelspezifisch und hat daher in der libc doch nix verloren, oder irre ich da?
Naja, das steht ja auch so dort:
These functions are Linux-specific and should not be used in programs intended to be portable.
Wo sollte die Funktion denn sonst hin? Gibts irgendwo einen Library für kernelspezifisches Zeugs?
MfG Peschmä
Du hast eigentlich Recht. Man kann die libc als "kernelspezifischen Teil" für Programme sehen.
Mit Obigem habe ich nun auch eine Dokumentation gefunden, die das "Standard-C" abdeckt. Gibt es so etwas Ähnliches auch für die Funktionalität unter sys/?
Gruß,
/dev
Gibt es so etwas Ähnliches auch für die Funktionalität unter sys/?Also 'zgrep "<sys/" /usr/man/man2/* | awk '{print substr($0,15,index($0,"."));}' | cut -f1 -d. | sort | uniq' liefert mir schon mal die Funktionen, ich glaub, weiter schaff ichs schon selber! ;)
Außer: Hat jemand hier ein anderes Unix als Linux? Die Kompatibilität bzw. Ähnlichkeit würde mich mal interessiern.
Gruß,
/dev
Naja, für die POSIX API gibts das hier:
http://www.opengroup.org/onlinepubs/009695399/
Alle POSIX kompatieblen Betriebssysteme sollten das unterstützen. (Zumindest zu einen Teil.)
Jo, danke! Sieht aus, als ließe sichs parsen...
Gruß,
/dev
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.