home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d168 / dillonstuff.lha / src / com / libs.c < prev    next >
C/C++ Source or Header  |  1988-11-22  |  1KB  |  53 lines

  1.  
  2. /*
  3.  *  LIBS.C
  4.  *
  5.  *  Libs [libname]
  6.  *
  7.  *  Libs        - list currently loaded libraries
  8.  *  Libs dres.library    - expunge specified lib on last close if no
  9.  *              further opens
  10.  */
  11.  
  12. #include <local/typedefs.h>
  13.  
  14. extern EXECBASE *SysBase;
  15.  
  16. main(ac,av)
  17. char *av[];
  18. {
  19.     short i;
  20.     LIB *lib;
  21.  
  22.     if (ac == 1) {
  23.     NODE *node;
  24.     for (node = SysBase->LibList.lh_Head; node->ln_Succ; node = node->ln_Succ) {
  25.         printf("%-20s ver %3ld  refs %ld\n",
  26.         node->ln_Name,
  27.         ((LIB *)node)->lib_Version,
  28.         ((LIB *)node)->lib_OpenCnt
  29.         );
  30.     }
  31.     puts("");
  32.     for (node = SysBase->DeviceList.lh_Head; node->ln_Succ; node = node->ln_Succ) {
  33.         printf("%-20s ver %3ld  refs %ld\n",
  34.         node->ln_Name,
  35.         ((LIB *)node)->lib_Version,
  36.         ((LIB *)node)->lib_OpenCnt
  37.         );
  38.     }
  39.     }
  40.     for (i = 1; i < ac; ++i) {
  41.     lib = OpenLibrary(av[i], 0);
  42.     if (lib) {
  43.         RemLibrary(lib);
  44.         printf("library refs: %ld\n", lib->lib_OpenCnt - 1);
  45.         puts("Will expunge on last close if no new opens");
  46.         CloseLibrary(lib);
  47.     } else {
  48.         puts("Unable to open library");
  49.     }
  50.     }
  51. }
  52.  
  53.