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 ?"
« Client-Server aus Sicht der UNIX-Systemaufrufe Weitere Programmierschnittstellen »

Reguläre Ausdrücke

In vielen Programmen werden zum Suchen von Mustern reguläre Ausdrücke verwendet. Beeindruckend ist, dass alle Programme die Ausdrücke gleich interpretieren. Das liegt allerdings nicht in erster Linie an der Harmoniesucht der UNIX-Programmierer, sondern einfach daran, dass UNIX die benötigten Funktionen als Bibliothek zur Verfügung stellt.

Nach POSIX-Standard werden vier Funktionen zur Verfügung gestellt: regcomp(), regexec(), regerror() und regfree(). regcomp() übersetzt eine Zeichenkette mit einem regulären Ausdruck in eine Variable vom Typ regex_t. Diese wird dann mit der Funktion regexec() auf den zu durchsuchenden Text angewandt. Wird die Variable nicht mehr benötigt, wird sie mit regfree() freigegeben. regerror() wandelt die Fehlernummern, die regcomp() oder regexec() erzeugen, in eine Fehlermeldung um. Programme, die diese Funktionen benutzen müssen die Datei regex.h einbinden.

Als Beispiel dient hier eine einfache Nachbildung des Programmes grep.

[Regulärer Ausdruck in grep]
#include <stdlib.h>
#include <stdio.h>
#include <regex.h>

int main(int argc, char *argv[])
{
char puffer[512];
int i;
regex_t regexpr;
FILE *fp;

if (argc<3) {
        printf("Usage: %s regexpression filesn", argv[0]);
        return -1;
    }
    if (regcomp(&regexpr, argv[1], REG_EXTENDED|REG_NEWLINE)) {
        printf("Problem beim Ausdruck %sn", argv[1]);
        return -2;
    }
    for (i=2; i<argc; i++) {
        fp = fopen(argv[i], "r");
        if (fp!=NULL) {
            while (!feof(fp)) {
                fgets(puffer, sizeof(puffer)-1, fp);
                if (regexec(&regexpr, puffer, 0, NULL, 0)==0) {
                    puts(puffer);
                }
            }
            fclose(fp);
        }
    }
    regfree(&regexpr);
    return 0;
}



« Client-Server aus Sicht der | UNIX-Systemaufrufe | Weitere Programmierschnittstellen »
 
 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