In welcher Reihenfolge druckt GNU env Umgebungsvariablen?

688
Psychonaut

Wenn ohne Argumente aufgerufen, die envund printenvdrucken Befehle aus dem GNU Coreutils den Wert jeden Umgebungsvariable. Was bestimmt die Reihenfolge, in der diese Variablen gedruckt werden? Es ist keine alphabetische Reihenfolge und auch nicht die Reihenfolge, in der die Variablen festgelegt wurden.

2

1 Antwort auf die Frage

4
Thomas Dickey

Jeder Prozess verfügt über eine Liste von Zeichenfolgen, die er als Umgebung verwaltet. Wenn Sie Elemente aus dieser Liste hinzufügen, ändern oder löschen, muss die Laufzeitbibliothek das entsprechende Array aktualisieren. Da es keine Standardanforderung gibt, dies in sortierter Form beizubehalten, verwendet die Laufzeitumgebung das, was die Entwickler als die schnellste Methode zum Aktualisieren der Liste entschieden haben. Überlegungen zur Leistung bestimmen die Reihenfolge.

Für weitere Informationen steht natürlich der Quellcodeenv zur Einsicht zur Verfügung. Die Umgebung wird in der Reihenfolge gedruckt, die das Array environverwendet.