- 论坛徽章:
- 0
|
// 程序名称: debg
// 程序功能: 使用16进制和ASCII码显示文件内容
// 程序格式: debg file [f]
// 开发日期: 2000年09月10日
// 开发作者: 耿祯荣
// 运行状况: UNIX5.0.5 5.0.7 调试运行通过
#include "stdio.h"
#include "stdlib.h"
main(int ac,char *av[])
{
long x,y,x1,y1;
long byte_num,wz;
unsigned int ch;
FILE *p;
int i;
char buf[50];
int sq,sq1;
if(ac<2){
printf("格式不正确!!\n" ;
printf("程序功能: 使用16进制和ASCII码显示文件内容" ;
printf("格式:debg filename [f]\n\a" ;
printf("\n欢迎您使用本软件 作者:耿祯荣\n" ;
exit(0);
}
p=fopen(av[1],"r" ;
if(p==0){
printf("\nFile Not found!!\n" ;
exit(0);
}
x=1;
y=x1=0;
y1=58;
x=1;
byte_num=0;
wz=0;
printf("[2J" ;
i=0;
sq1=0;
do{
ch=getc(p);
if(feof(p))
break;
if(i==0)
printf( "[%dH%05x",x,byte_num);
if(i==7)
printf( "[%dH[%dC%02x-[%dH[%dC%c",
x,y*3+6,ch,x,y1,(isprint(ch)?ch:'.'));
else
printf( "[%dH[%dC%02x [%dH[%dC%c",
x,y*3+6,ch,x,y1,(isprint(ch)?ch:'.'));
i++;
byte_num++;
y1++;
y++;
if(i==16){
sq=byte_num%512;
if(sq==0){
printf("[%dH===================== ",++x);
printf("扇区: %04d 字节: %10ld ",sq1++,byte_num);
printf("======================" ;
}
x++;
y=0;
y1=58;
i=0;
}
if(x==25){
x=1;
if(av[2][0]!='f')
if(getchar()=='q')
break;
printf("[2J" ;
}
}while(1);
fclose(p);
printf("\n欢迎您使用本软件 作者:耿祯荣\n" ;
}
编译方法
cc -o debg debg.c |
|