Rheinwerk Computing < openbook >
Rheinwerk Computing - Bücher zur Programmierung und Softwareentwicklung


Wie werde ich Unix-Guru
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Rheinwerk Computing / Openbook / "Wie werde ich UNIX-Guru ?"
« Aufrufparameter Die Funktion main Fehlerbehandlung: errno »

Zugriff auf die Umgebungsvariablen

Der bislang nicht erwähnte dritte Parameter von main() zeigt auf die Umgebungsvariablenliste. Wie bei argv handelt es sich um ein Array von Zeichenketten. Da hier allerdings die Anzahl nicht in einer separaten Variablen mitgeteilt wird, wird eine andere Form der Endekennung verwendet. Der Zeiger nach dem letzten Eintrag hat den Wert 0. In dem Beispielprogramm wird die komplette Liste der Umgebungsvariablen angezeigt.

[Zeigt die Liste der Umgebungsvariablen]
main(int argc, char **argv, char **env)
{
int i;
char *str;

if (env) {
        i=0;
        while(str = env[i]) {
            puts(env[i++]);
        }
    }
}

Wer das Programm startet bekommt eine riesige Liste, von der hier nur ein kurzer Ausschnitt angezeigt wird:

WINDOWMANAGER=/usr/X11R6/bin/kde
HOME=/home/arnold
TERM=xterm
XNLSPATH=/usr/X11R6/lib/X11/nls
no_proxy=localhost

Der dritte Parameter ist deswegen relativ unbekannt, weil man über die externe, globale Variable environ auf die gleiche Liste zugreifen kann. Aus diesem Grund hat sich POSIX auch auf die Variante mit zwei Parametern festgelegt.

Im Normalfall werden Sie allerdings mit der kompletten Liste wenig anfangen wollen, sondern werden eine spezielle Umgebungsvariable brauchen. Dazu verwenden Sie die Funktion getenv().

#include <stdlib.h>
char *getenv(const char *varname);
int putenv(const char *zuweisung);

Sofern die als Parameter angegebene Variable gesetzt ist, bekommen Sie einen Zeiger auf den Wert zurückgeliefert. Da dieser Zeiger beim nächsten Aufruf von getenv() verloren gehen kann, sollten Sie den Inhalt in eine lokale Variable kopieren, wenn Sie ihn später noch brauchen.

Es ist auch möglich, vom Programm aus Umgebungsvariablen zu setzen. Dazu dient die Funktion setenv(). Als Parameter erwartet sie einen vollständigen Variableneintrag der Form var=wert. Beispiel:

putenv("TERM=vt100");



« Aufrufparameter | Die Funktion main | Fehlerbehandlung: errno »
 
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 UNIX/Linux

Ubuntu 14.04 LTS

Linux Handbuch

Linux-Server

Raspberry Pi

Ubuntu Server
 Shopping
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info



Copyright © Rheinwerk Verlag GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern