Abarbeiten der Kommandozeile

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Concatenate.om
PROCEDURE ProcessFiles;
   VAR
      pathname: ARRAY 512 OF CHAR;
      in: Streams.Stream;
BEGIN
   IF Args.GetArg(pathname) THEN
      REPEAT
         IF ~UnixFiles.Open(in, pathname,
               UnixFiles.read, Streams.onebuf, NIL) THEN
            Write.StringS(Streams.stderr, pathname);
            Write.StringS(Streams.stderr, ": cannot be ");
            Write.StringS(Streams.stderr, "opened for ");
            Write.LineS(Streams.stderr, "reading");
            Process.Exit(Process.indicateFailure);
         END;
         IF ~Copy(in, Streams.stdout) THEN
            Write.StringS(Streams.stderr, "write error ");
            Write.StringS(Streams.stderr, "while copying ");
            Write.LineS(Streams.stderr, pathname);
         END;
         Streams.Release(in);
      UNTIL ~Args.GetArg(pathname);
   ELSE
      IF ~Copy(Streams.stdin, Streams.stdout) THEN
         Write.StringS(Streams.stderr, "write error ");
         Write.StringS(Streams.stderr, "while copying ");
         Write.LineS(Streams.stderr, "standard input");
      END;
   END;
END ProcessFiles;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005