您当前的位置:首页>>编程相关>>正文
 
读扇区数据C语言程序
作者: 来源: 日期:2007-5-15 9:26:06  点击次数:


因此本程序在运行前,操作者一定要看一下在当前目录下是否有同名文件,如盲目操作,可能产生破坏性的严重后果。


如果想让程序运行时更加安全,必须在源程序里增加一部分检测语句。这里给出一个检测方法,大家可作为参考。


在第11行和第12行中间增加下列内容:


if((fp=fopen(sh,"rb"))!=NULL)


     {


       do


       {


       printf("File already exists.Continue(Y/N)?:");


         c=toupper(getche());


       printf("\n");


       }


       while((!(c=='N'))&&(!(c=='Y')));


       if(c=='N')


         exit(0);


     }


这一段语句的作用是按照键盘输入的文件名,以只读方式打开文件,因为只读方式不破坏原文件。如果打开文件失败,说明没有同名文件,可继续进行。如果打开文件成功,说明有同名文件。


这时程序在屏幕上输出一行提示“File already exists.Continue(Y/N)?:”,意思是文件已经存在,是否继续进行?如果回答N,则退出程序返回操作系统;如果回答Y,则继续执行程序,原来存在的文件内容就被破坏了。如果回答N和Y以外的字符,则程序循环提示。


增加的语句里面多了一个字符变量c,需在定义变量的时候加一条语句“char c;”;多调用了三个函数,需在开头增加头文件包含语句:


#include<stdlib.h>


#include<conio.h>


#include<ctype.h>


第13行调用函数biosdisk()读取扇区数据。


第14-15行用一个循环将512个字符输出到文件。循环结束以后,文件指针指在文件的末尾。这时如果再对文件进行操作,则必需将指针返回。


第16行调用函数rewind()将文件指针返回到开头。


第17-24行将存入文件的扇区数据按16进制方式打印到屏幕。


 


                           程序运行


 


 


运行程序时在命令行输入CRSE,然后回车。屏幕上出现输入文件名的提示,输入文件名后回车,执行程序。


输入文件名时,一定要观察一下当前目录中是否有同名文件,以防止同名文件被破坏。在确保没有同名文件时,再敲回车键。


程序执行的结果,在当前目录下建立一个512字节的扇区数据文件,同时将每一个字节用16进制数据格式打印到屏幕上,显示结果如下:


F:\>crse


Enter file name: se001


33c08ed0bc 07cfb50 7501ffcbe1b7cbf1b 65057b9e5 1f3a4cbbebe 7b1 4


382c7c 9751583c610e2f5cd188b148bee83c610497416382c74f6be10 74eac


3c 074fabb 7 0b4 ecd10ebf2894625968a46 4b4 63c e7411b4 b3c c74 5


3ac4752b40c64625 67524bbaa5550b441cd1358721681fb55aa7510f6c1 174


 b8ae0885624c7 6a1 6eb1e8866 4bf a 0b8 1 28bdc33c983ff 57f 38b4e


25 34e 2cd137229be59 7813efe7d55aa745a83ef 57fda85f67583be2e 7eb


8a98915299 346 81356 ae812 05aebd54f74e433c0cd13ebb8 0 080314219


5633f656565250 65351be10 0568bf45052b8 0428a5624cd135a588d641072


 a4075 14280c7 2e2f7f85ec3eb74b7d6c7f8b1edceded0a7a1a3b0b2d7b0b3


ccd0f2cedeb7a8bcccd0f8a1a3 0bcd3d4d8b2d9d7f7cfb5cdb3cab1b3f6cfd6


b4edcef3a1a3b0b2d7b0b3ccd0f2cedeb7a8bcccd0f8a1a3 0c8b1c9d9b2d9d7

本新闻共4页,当前在第3页  1  2  3  4  


上一篇:没有了
下一篇:读扇区汇编程序源程序清单

  北京总部: 4006-505-808
  上 海 部: 021-58358765
  深 圳 部: 0755-83692929
  浙 江 部: 13666673722
  广 州 部: 020-83821091
  重 庆 部: 023-86870422
  昆 明 部: 15987117834
  哈尔滨部: 13946167430
  其它地区: 4006-505-808

经典案例
中国石油管理局-Oracle数据库恢
中国网通-IBM EXP300磁盘阵列数
大连鸿德经贸有限责任公司-SQL
中国地质环境监测院-HP LH3000
藁城市东街百货-EFS文件解密成
工商银行山东分行-AIX删除LV数
中央电视台新闻评论部-苹果分
promise乔鼎硬盘阵列数据恢复成
麒麟童文化-苹果分区无法打开,
NAS 8100服务器数据恢复成功 
解决方案
raid磁盘阵列OFFLINE后的应急方
磁盘未被格式化,是否格式化数据
误GHOST、误一键恢复灾难应急方
误删除、误格式化数据灾难应急
LINUX FSCK数据出错灾难应急方
北亚数据恢复 - 联系我们 - 关于北亚 - 友情链接 - 网站地图 - RSS聚合 
版权所有 北京北亚数据恢复中心
24小时免费咨询电话:4006-505-808 或 800-810-580
中关村部:北京市海淀区中关村大街11号E世界A座8层832B室
皂君庙部:北京市海淀区学院南路68号吉安大厦C座(汇智楼)528室