Fragen zu verschiedenen Datentypen
-
Was ist genau size_t und wann sollte man ihn verwenden? Ich meine mal gehört zu haben, size_t ist die unsigned Wort-Grösse auf der jeweiligen Architektur, ssize_t das gleiche als signed?
Mir ist auf aufgefallen das es unter POSIX für nahezu alles eigene Datentypen gibt.
pid_t -> Prozess-Id
uid_t -> UID
gid_t -> GID
dev_t -> Device
usw.Warum wurden dafür eigene Datentypen eingebaut, handelt es sich nicht meistens um einfache int's? Ich finde das und viele andere Systemfunktionen machen irgendwie die C++ Programmierung unter Unix ein wenig hässlich, da dort einfach alles so extrem "C" lastig ist.
-
Unix-Leon schrieb:
Was ist genau size_t und wann sollte man ihn verwenden? Ich meine mal gehört zu haben, size_t ist die unsigned Wort-Grösse auf der jeweiligen Architektur, ssize_t das gleiche als signed?
size_t ist ein vorzeichenloser Ganzzahltyp, der groß genug ist, um alle möglichen Array-Größenwerte und -Indizes aufzunehmen. Wie groß der ist, hängt vom System ab.
(ssize_t gibt es übrigens nicht im ANSI Standard, aber ptrdiff_t (groß genug, um beliebige Pointer-Differenzen aufzunehmen))Mir ist auf aufgefallen das es unter POSIX für nahezu alles eigene Datentypen gibt.
pid_t -> Prozess-Id
uid_t -> UID
gid_t -> GID
dev_t -> Device
usw.Warum wurden dafür eigene Datentypen eingebaut, handelt es sich nicht meistens um einfache int's?
Da hängt es auch von der Architektur ab, was hinter einem pid_t oder dev_t steckt (du als Nutzer mußt nur wissen, daß die Variablen einen Prozess oder ein Device ansprechen können).