Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://crydee.sai.msu.ru/ftproot/pub/comp/os/os2/xfree86os2/html/lsof.c.html
Дата изменения: Tue Oct 24 00:00:00 2000 Дата индексирования: Mon Dec 24 11:41:08 2007 Кодировка: Поисковые слова: saturnus moon |
/* to be compiled with EMX/gcc */ #include#include #include #include #include "dosqss.h" extern APIRET APIENTRY DosQuerySysState (ULONG func, ULONG par1, ULONG pid, ULONG _reserved_, PVOID buf, ULONG bufsz); static void dump_files(PQTOPLEVEL); main(void) { int i; APIRET rc; #define BUFSIZE 128000l #define RESERVED 0 char *buf = malloc(BUFSIZE); memset(buf,0,BUFSIZE); rc = DosQuerySysState(0x1f, RESERVED, RESERVED, RESERVED, (PCHAR)buf, BUFSIZE); if (!rc) { PQTOPLEVEL top = (PQTOPLEVEL)buf; dump_files(top); } } static void dump_files(PQTOPLEVEL top) { PQFILE f = (PQFILE)top->filedata; PQFDS fd; printf("SFN Opncnt Flags Accmode Size Volhnd Attrib Name\n"); printf("----- ------ -------- -------- -------- ------ ------ ----------------\n"); while (f && f->rectype == 8) { fd = f->filedata; printf("%5x %6d %08x %08x %8d %05x ", fd->sfn, f->opencnt, fd->flags, fd->accmode, fd->filesize, fd->volhnd); putchar((fd->attrib & 0x20) ? 'A' : '-'); putchar((fd->attrib & 0x10) ? 'D' : '-'); putchar((fd->attrib & 0x08) ? 'L' : '-'); putchar((fd->attrib & 0x04) ? 'S' : '-'); putchar((fd->attrib & 0x02) ? 'H' : '-'); putchar((fd->attrib & 0x01) ? 'R' : '-'); printf(" %s\n",f->name); f = f->next; } }