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


'Wie werde ich Unix-Guru' als Buch bestellen
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

 
Galileo 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 »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press 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.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de