| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:C代码:内存清理程序
取消只看楼主 加入收藏
终结者C
Rank: 2
等 级:论坛游民
帖 子:34
专家分:23
注 册:2013-3-3
结帖率:100%
收藏
 问题点数:0 回复次数:0 
C代码:内存清理程序
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
#include<string.h>
/*定义结构体MCB表示内存控制块*/
struct MCB
{
    unsigned char type;
    unsigned int  owner;
    unsigned int  size;
    unsigned char unused[3];
    unsigned char dos[8];
};
unsigned char far *vector,vectdat[1024];
unsigned int seg,i;
FILE *fp;
struct MCB *mcb;
/*定义函数ClearMem*/
void ClearMem()
{
    fp=fopen("e:\\clrmen.dat","rb");
    seg=(unsigned int)getw(fp);
    mcb=(struct MCB far *)MK_FP(seg,0);
    while(mcb->type=='M')
    {
        mcb->owner=0;
        mcb=(struct MCB far *)MK_FP(FP_SEG(mcb)+mcb->size+1,0);
    }
    vector=(unsigned char far *)MK_FP(0,0);
    disable();
    for(i=0;i<1024;i++)
    *(vector+i)=fgetc(fp);
    enable();
    fclose(fp);
    _AX=0x3;
    geninterrupt(0x10);
}
/*定义函数SaveMem*/
void SaveMem()
{
    fp=fopen("e:\\clrmen.dat","wb");
    seg=*(unsigned int *)MK_FP(_psp,0x2c)-1;
    mcb=(struct MCB far *)MK_FP(seg,0);
    putw(seg,fp);
    vector=(unsigned char far *)0x0;
    for(i=0;i<1024;i++)
  fputc(*(vector+i),fp);
}
int main(int argc,char *argv[])
{
    puts("***************************************");
    puts("| This program will clear your memory |");
    puts("***************************************");
    mcb->size=0;
    if(argc==1)
    {
        ClearMem();
        printf("Clear your memory successfully!\n");
        return 1;
    }
    if(argc==2)
    {
        if(strcmp(argv[1],"-s")==0)
        {
            SaveMem();
          printf("Save record Successfully!\n");
            return 1;
        }
    }
    printf("Clear your memory failly!");
    return 0;
}
搜索更多相关主题的帖子: 内存 mcb include 结构体 
2013-03-05 07:26
快速回复:C代码:内存清理程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015412 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved