/* Listing #l9 */ #include #include #define MAX_DEV_NAME 120 char device[MAX_DEV_NAME] ; char data[LEN_DATSTRING] ; char godzina[LEN_DATSTRING]; struct DateTime dat; int main(int argc, char* argv [ ]) { struct DosList *dl; struct AssignList *al; long flags, size; dat.dat_StrDate=data ; dat.dat_StrTime=godzina ; flags=LDF_READ | LDF_ASSIGNS | LDF_VOLUMES ] LDF_DEVICES; if (dl=LockDosList(flags)) { while (dl=NextDosEntry(dl, flags)) { size=*(char*)BADDR(dl ->dol_Name) ; size=(sizedol_Name)+1, size); ; device [size]=`0`; Printcf("%- 15 s", device); switch (dl->dol_Type) { case DLT_VOLUME: dat.dat_Stamp=dl - >dol_misc.dol.volume.dol_VolumeDate ; if (!(DateToStr(&dat))) dat.dat_StrDate [0]-dat.dat_StrTime[0] ='\0'; Printf(" - Wolumen\t % s %s\n", dat -dat_StrDate, dat.dat^StrTime); break; case DLT_DIRECTORY: Printf(" - Przypisanie\n" ) ; if (NameFromLock (dl->dol.Lock, device, MAX_DEV_NAME)) Printf("\t\t\t%s\n", device) ; for (al=dl - >dol_misc.dol.assign.dol_List; al ; ai=al->al_Next) if (NameFromLock(al ->al_Lock,device,MAX_DEV_NAME)) Printf("\t\t\t%s\n",device); break; case DLT_DEVICE: Printf(" - Urządzenie (fizyczne)\n"); break; } } UnLockDosList(flags); } return 0; }