Hey Amigos, wie geht's?
Nach der Lektüre von diesem 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
Hey Amigos, wie geht's?
Nach der Lektüre von diesem 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
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)
I haven't lost my mind - It's somewhere on a backup-disc
Soweit kann ich es noch unterschreiben, jedochZitat von SeeksTheMoon
Warum nicht? Sowohl Sockets wie erst recht das Mounten dürften doch UNIX-weit gültig sein?socket.h, mount.h, elf.h usw wirst Du bestimmt nicht auf anderen Systemen finden (zumindest nicht unter Unix-Systemen)
Gruß,
/dev
Geändert von Deever (25-04-2005 um 17:19 Uhr)
da war wohl entweder ein nicht zuwenig
MfG Peschmä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
ja, da habe ich mich vertippt; es sollte jetzt klar sein was ich gemeint habe
I haven't lost my mind - It's somewhere on a backup-disc
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
Weil das irgendjemand mal gebraucht und eingebaut hat...Zitat von Deever
Naja, das steht ja auch so dort:Das Mounten ist ja sowieso kernelspezifisch und hat daher in der libc doch nix verloren, oder irre ich da?
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ä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
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
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!Zitat von Deever
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.)
Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing
Jo, danke! Sieht aus, als ließe sichs parsen...
Gruß,
/dev
Lesezeichen