// 程序名称: 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
本人网站有已经编译好的目标文件
http://hsgzr.www48.cnidc.cn
绣林 回复于:2004-05-16 15:08:12 |
好帖,支持原创。 |
sdccf 回复于:2004-05-16 23:11:26 |
好,请继续帖其它小工具的代码。 |
hsgzr 回复于:2004-05-17 21:25:46 |
看来本论坛对此不感兴趣 |
htldm 回复于:2004-05-18 09:20:21 |
大家都很支持你呀 |
starter 回复于:2004-05-18 18:06:32 |
不错 |
hsgzr 回复于:2004-05-18 18:54:28 |
看来这个贴子该发到C论坛区 除了三位外 其它人没有感兴趣的 |
cain 回复于:2004-05-18 22:57:44 |
俺很有兴趣,已经下载了,继续!! |
zyun_work 回复于:2004-05-19 00:02:57 |
支持,好东西,有关于可以查找进程,杀死终端的小程序吗?谢谢! |
jysww 回复于:2004-05-19 09:23:24 |
好贴,继续! |
corand 回复于:2004-05-19 14:14:39 |
在linux运行有问题问题,待会儿看看是哪里的问题 |
li2002 回复于:2004-05-19 15:09:40 |
系统不是有hd和od命令吗 |
hsgzr 回复于:2004-05-19 16:49:48 |
是的 UNIX系统是有hd和od 这个工具是我在分析一个数据文件的存储情况时临时做的 贴上来是为了给初学C语言的人参考 |
loveu_cn 回复于:2004-05-20 16:35:59 |
写一个可以修改源文件的工具啊,这个可以用hd的。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/