免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1595 | 回复: 4
打印 上一主题 下一主题

UNIX工具源代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-18 22:44 |只看该作者 |倒序浏览
// 程序名称: 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("";
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("";
}
}while(1);
fclose(p);
printf("\n欢迎您使用本软件 作者:耿祯荣\n";
}

编译方法
cc -o debg debg.c

论坛徽章:
0
2 [报告]
发表于 2004-05-19 09:25 |只看该作者

UNIX工具源代码

是od的优化还是补充?没看出来。
终端控制码是针对哪些终端类型的?有终端控制码即限制了使用该工具的终端,又不利于重定向输出,画蛇添足。
另外,不太懂什么叫用ASCII码显示文件内容。
当文件内容本身是用ASCII编码的会怎样?不是用ASCII编码的又会怎样?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-05-19 10:40 |只看该作者

UNIX工具源代码

把代码用code功能编辑一下会更好。

论坛徽章:
0
4 [报告]
发表于 2004-05-19 16:40 |只看该作者

UNIX工具源代码

这是我在做程序的时候 临时做的 为了查看数据文件的存储情况 相当于DOS下的debug 但这个不能编辑 贴上来为了供初学的人参考 如果您是高手请忽略此文

论坛徽章:
0
5 [报告]
发表于 2004-05-19 16:50 |只看该作者

UNIX工具源代码

[quote]原帖由 "hsgzr"]这是我在做程序的时候 临时做的 为了查看数据文件的存储情况 相当于DOS下的debug 但这个不能编辑 贴上来为了供初学的人参考 如果您是高手请忽略此文[/quote 发表:

为什么不用现成的功能更强大的od,而非要浪费时间自己做一个功能还不如它的呢?od输出里没有终端控制码,重定向到文件,想怎么编辑就怎么编辑,多好啊!

我说这些也给初学的人参考,有现成的用就别再重复劳动,节约点时间多学点别的,除非你要做的比原来的那个要好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP