/* Listing #17 */ #include #include #include #define BUFSIZE 255 #define TEMP_NAME "T:list_result" char nazwa[BUFSIZE]="List FILES LFORMAT %s "; int main(int argc, char* argv[]) { BPTR lista; if (argc>l) strncpy(nazwa+strlen(nazwa), argv[l], strlen (nazwa) -1)'; if (!(lista=Open(TEMP_NAME, MODE_NEWFILE))) return 10; if (SystemTags(nazwa, SYS_Output, lista, TAG.DONE)) PrintFault(IoErr(), "List"); else char *subbuff; long size; Flush(lista) ; Seek(lista, O, OFFSET..BEGINNING) ; if (argc>2) { strcpy(nazwa, argv[2]); nazwa[strlen(nazwa)+1]='\0' ; nazwa[strlen(nazwa)]=' '; } else strcpy(nazwa, "More "); size=BUFSIZE-strlen(nazwa)-1; subbuff=nazwa+strlen(nazwa); while (FGets(lista, subbuff, size)) { BPTR output; if (!(output^Open("CON:////KonBOla/AUTO/CLOSE/WAIT",MODE_OLDFILE))) PrintFault(loErr(), argv[0]); SystemTags'(nazwa, SYS_Output, output, SYS_Input, O, SYS.Asynch, TRUE, TAG_DONE); } } if (lista) { Close(lista) ; if (!DeleteFile(TEMP_NAME)) PrintFault(IoErr(), TEMP_NAME); } return 0; }