| 

.NET C# Java Javascript Exception

1
Der besagte Datentyp im Zusammenhang mit Prozessen auf Betriebsystemebene wird als eindeutiger Bezeichner für Prozesse verwendet. Jedoch steht hinter diesem Datentypen nichts anderes als ein int. Wenn man sich mal ansieht wo pid_t wie definiert ist wird man festellen, dass pid_t durch etwas definiert ist, was wiederum irgendwo als definiert ist usw. bis die letzte Definition in dieser Kette als int definiert wird.

Meine Frage lautet nun, warum muss das so kompliziert sein, wieso verwendet man nicht von vornherein einfach ein int?

Eine primitive Vermutung ist, dass man den Datentypen hinter dem Datentypen problemlos austauschbar halten möchte. Wenn man also irgendwann soweit ist, dass man die Anzahl an Prozessen mit der "Zahlenmenge" eines Integers die Prozessmenge nicht mehr abbilden kann ^^ Glaub ich aber nicht =)
08.01.2014
new_be 15 4
1 Antwort
1
Eigentlich geht deine Vermutung schon sehr in die richtige Richtung.

1. int ist als "mindestens 16 Bit groß" definiert, auch wenn es heutzutage unüblich ist, wenn int auf einem PC nicht 32 Bit groß ist. Anders sieht es bei Microcontroller aus, da gibt es noch sehr viele die mit 8 Bit arbeiten. Beim Arduino Uno z.B. ist ein int nur 16 Bit groß.

2. Mit solchen typedefs werden Implementierungsdetails verborgen. Du willst ja eine PID in der Variablen speichern, also ist es auf der Ebene nicht interessant ob die PID ein short, int oder long ist. Es ist einfach eine PID. Das ist vor allem dann praktisch, wenn dein Code für verschiedenen Plattformen compiliert werden soll.

Würdest du statt pid_t überall int verwenden, müsstest du deinen Code ändern, wenn du für ein System compilieren willst das z.B. int mit 16 Bit definiert aber dennoch 32 Bit große PIDs unterstützt.

3. Es gab mal eine Zeit da wurde das Datum auch nur mit zwei stellen codiert und 1999 gab es dann eine kleine Y2K-Bug-Panik. In einer Zeit wo Mobiltelefone z.T. mehr CPU-Kerne haben als mein erster PC würde ich mich nicht darauf verlassen, dass pid_t noch lange nur 32 Bit klein bleibt. ;)
09.01.2014
phg 1,6k 3

Stelle deine Parallel-Frage jetzt!