/* * APPEND (c)1989 Oliver Enseling eine Datei an eine andere anfügen * Syntax: APPEND files [TO] file files darf ein AmigaDOS-Muster, * oder eine Auflistung mehrerer Dateien sein file ist eine einzelne * AmigaDOS-Datei */ #include #include #include #include #include #define BUFSIZE 256 struct FILEINFO FI; char Buffer[BUFSIZE]; #ifdef DEUTSCH #define SYNTAX \ "Syntax: APPEND dateien | muster [dateien | muster] [...]] [TO] datei\n" \ "Version 1.00, ©1989 Oliver Enseling\n" #define NOREAD "%s kann nicht gelesen werden\n" #define NOWRITE "%s kann nicht beschrieben werden\n" #else #define SYNTAX \ "Usage: APPEND files | pattern [files | pattern] [...]] [TO] file\n" \ "Version 1.00, ©1989 Oliver Enseling\n" #define NOREAD "read error %s\n" #define NOWRITE "write error %s\n" #endif void main(argc, argv) int argc; char **argv; { if (argc < 3) printf(SYNTAX); else { int src, dest, count, i, maxi = stricmp(argv[argc - 2], "TO") == 0 ? argc - 2 : argc - 1; if ((dest = open(argv[argc - 1], O_APPEND | O_WRONLY | O_CREAT)) >= 0) { for (i = 1; i < maxi; i++) if ((src = open(argv[i], O_RDONLY)) >= 0) { do { count = read(src, Buffer, BUFSIZE); write(dest, Buffer, count); } while (count > 0); close(src); } else printf(NOREAD, argv[i]); close(dest); } else printf(NOWRITE, argv[argc - 1]); } }