#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
void main (void)
{
union REGS inregs, outregs;
struct SREGS segs;
int i, j;
int structure_size;
struct SystemTableEntry {
struct SystemTableEntry far *next; // Next SFT entry
unsigned file_count; // Files in table
unsigned handle_count; // Handles to this file
unsigned open_mode; // File open mode
char file_attribute; // Attribute byte
unsigned local_remote; // Bit 15 set means remote
unsigned far *DPD; // Drive parameter block
unsigned starting_cluster;
unsigned time_stamp;
unsigned date_stamp;
long file_size;
long current_offset;
unsigned relative_cluster;
long directory_sector_number;
char directory_entry_offset;
char filename_ext[11]; // No period, space padded
// Ignore SHARE fields for example
} far *table_ptr, far *file;
long far *system_table;
// Get DOS version
inregs.x.ax = 0x3001;
intdos (&inregs, &outregs);
if (outregs.h.al < 3)
{
printf ("This program requires DOS version 3 or later\n");
exit (1);
}
else if (outregs.h.al == 3)
structure_size = 0x35;
else if (outregs.h.al >= 4)
structure_size = 0x3B;
// Get the list of lists pointer
inregs.h.ah = 0x52;
intdosx (&inregs, &outregs, &segs);
// The pointer to the system file table is at offset 4
system_table = MK_FP(segs.es, outregs.x.bx + 4);
table_ptr = (struct SystemTableEntry far *) *system_table;
do {
printf ("%d entries in table\n", table_ptr->file_count);
for (i = 0; i < table_ptr->file_count; i++)
{
file = MK_FP(FP_SEG(table_ptr), FP_OFF(table_ptr) +
(i * structure_size));
if (file->handle_count)
{
for (j = 0; j < 8; j++)
if (file->filename_ext[j] != ' ')
putchar(file->filename_ext[j]);
else
break;
if (file->filename_ext[8] != ' ')
putchar('.');
for (j = 8; j < 11; j++)
if (file->filename_ext[j] != ' ')
putchar(file->filename_ext[j]);
printf (" %ld bytes %x attribute %d references\n",
file->file_size, file->file_attribute,
file->handle_count);
}
}
table_ptr = table_ptr->next;
} while (FP_OFF(table_ptr) != 0xFFFF);
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spvwm .rar.rar (63个子文件)
FILES
FULLNAME.C 407B
DTOUTF.C 474B
DELTREE.C 2KB
COPYDOS.C 2KB
FILETABL.C 1KB
FSCANF.C 594B
DTOUT.C 506B
ACCESS.C 765B
FILEDT.C 726B
DOSCOPY.C 827B
DISKFREE.C 463B
MY_DEL.C 156B
ALLFILES.C 1KB
LOCKING.C 551B
FILELEN.C 440B
UNLINK.C 156B
TMPNAM.C 193B
NEWCHDIR.C 395B
FILENO.C 441B
FERROR.C 709B
TRYAUTO.C 644B
FMODE.C 230B
SHOWDIR.C 397B
HANDLES.C 544B
SETVBUF.C 488B
JULY4_94.C 840B
SPLIT.C 975B
CHK_DISK.C 648B
GETDRIVE.C 196B
CONFCOPY.C 565B
DUP.C 699B
READONLY.C 185B
DTBITS.C 938B
AUTOINFO.C 573B
SRCH_ENV.C 251B
GETFATD.C 323B
LOCKAUTO.C 390B
LOWCOPY.C 965B
FPRINTF.C 398B
DTINF.C 613B
DTIN.C 642B
CHSIZE.C 401B
CREATNEW.C 283B
TELL.C 536B
MAKEPATH.C 340B
SRCHPATH.C 220B
TEMPNAM.C 154B
PUTWGETW.C 706B
DUP2.C 177B
TELLATTR.C 702B
TEXTCOPY.C 509B
SYSTABLE.C 2KB
MKTEMP.C 327B
NOSTDERR.C 190B
TEST_A.C 261B
SETBUF.C 442B
SHOW_POS.C 546B
CREATTMP.C 313B
UTIME.C 234B
SOPEN.C 543B
SELECT_C.C 204B
UMASK.C 791B
www.pudn.com.txt 218B
共 63 条
- 1
资源评论
- weixin_464148052023-03-21超赞的资源,感谢资源主分享,大家一起进步!
林当时
- 粉丝: 100
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javascript的React Native Helloword设计源码
- 基于Vue的药品管理后台设计源码
- 基于Javascript的涛涛帮忙医院测评设计源码
- 基于Java的Office文档转换为PDF服务设计源码
- 基于Java的Stanford cs143 Classroom Object Oriented Language解释器设计源码
- 基于CSS的电子产品网页设计源码
- 基于Kotlin的自定义ViewGroup试卷试题功能设计源码
- 基于Javascript的PDWebpack配置框架设计源码
- 基于Java的宠物相关设计源码
- 基于Objective-C的IOS端获取在线视频网页链接设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功