|
![]() | 作者: god_father [god_father]
![]() |
登录 |
#include <stdio.h> #include <bios.h> #include <fcntl.h> #include <sys\types.h> #include <sys\stat.h> void helpmsg(void); int main(int argc,char *argv[]) { int result; char buffer[512]; FILE *fp; if(argc==1)helpmsg(); if(*argv[1]=='d'||*argv[1]=='D') { result=biosdisk(2,0x80,0,0,1,1,buffer); if(!result) { printf("读硬盘分区表成功^^^^^GOD_Father\n"); if((fp=fopen("D:\1.txt","wb+"))==NULL) { fprintf(stderr,"不能创建文件:D:\1.txt\n"); exit(1); } fprintf(buffer,1,512,fp); /*strcpy(fp,buffer);*/ fclose(fp); printf("硬盘分区表保存成功^^^^^GOD_Father\n"); return 0; } else { fprintf(stderr,"读硬盘分区表失败"); exit(1); } } if(*argv[1]=='c'||*argv[1]=='C') { if((fp=fopen("D:\1.txt","rb+"))==NULL) { fprintf(stderr,"文件打开失败^^^^^GOD_Father\n"); exit(1); } fread(buffer,1,512,fp); result=biosdisk(3,0x80,0,0,1,1,buffer); if(!result){ printf("硬盘分区表恢复成功^^^^^^GOD_Father\n"); fclose(fp); return 0; } else{ fprintf(stderr,"硬盘分区表恢复失败^^^^^^GOD_Father\n"); fclose(fp); exit(1); } } return 0; } void helpmsg(void) { puts("程序使用的格式为:SAVEPART[D]或SAVEPART[C]\n"); puts("参数:D---保存硬盘分区表到D盘\n"); puts("参数:C---从D盘恢复硬盘分区表\n"); printf("CopyRight@2004 by **** GOD_Father!"); exit(0); } 分区表.c: 警告 分区表.c 24: 指针转换后指向其它类型在 main 函数中 警告 分区表.c 24: 不可移动的指针(地址常数)转换在 main 函数中 参数中有错误字符 出现上述错误 请高手指正 谢谢 |
地主 发表时间: 04-03-27 22:51 |
![]() | 回复: god_father [god_father] ![]() |
登录 |
关于硬盘分区表的调用与恢复 kao ,,没人看吗???? |
B1层 发表时间: 04-03-29 12:42 |
![]() | 回复: ghame [ghame] ![]() |
登录 |
是不是函数用错了? STDIO.H里面的fprintf函数是这样定义的 int _Cdecl fprintf(FILE *__stream, const char *__format, ...); 第一个参数是文件指针哦. 而你是这样写的: fprintf(buffer,1,512,fp); |
B2层 发表时间: 04-03-29 13:31 |
![]() | 回复: god_father [god_father] ![]() |
登录 |
不是阿 我用的是,bios.h里的 函数 |
B3层 发表时间: 04-04-01 15:04 |
![]() | 回复: kailangq [kailangq] ![]() |
登录 |
![]() |
B4层 发表时间: 04-04-02 04:07 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号