说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

急!谁解决了这个问题,就是不断申请帐号也会帮他加1000分!!!!说话绝对算数!

编辑:说三道四文库 发布时间:2018-04-27 01:23
HTML文档下载 WORD文档下载 PDF文档下载
help!!!
求一命令代码
功能如下:
命令名 writetofd0(叫什么都成) 有一个参数
运行 #writetofd0 filename 后
就把filename这个文件写入软盘的固定扇区内(注意,是固定扇区)
还有将filename的文件名和大小也写进去(也是固定扇区)
谢谢
固定扇区号是多少?怎么传入?
我有UNIX和WINDOWS(98/2000)的软盘扇区直接读写的函数,需要吗?
快速回复
int readFloppy(unsigned char *outData, //读出数据的存储BUF,输出
                        int *outDataLen, //读出数据的长度,输入
                        int sectorNum)   //扇区号
{
int retVal;
int fd;
unsigned char readBuf[1024];//大小为512的整数倍

memset(readBuf, 0, 1024);

printf("read floppy disk begin.");

fd = open("/dev/rfd0135ds18", O_RDWR);//打开软驱
if(fd == -1)
{
printf("the floppy disk not ready.");
return -1;
}

lseek(fd, (sectorNum*512), SEEK_SET);//定位文件指针,此处用来定义磁头
retVal = read(fd, readBuf, 512);
if(retVal != 512)
{
printf("readFloppy read %d sector error.  read %d byte.", sectorNum, retVal);
return -1;
}
printf("read %d sector ok", sectorNum);
memcpy(outData, readBuf, outDataLen);
close(fd);
return 0;
}
// 主要参数说明同上,如果要写入的数据大于512,分批多次写入即可
int wrtFloppy(unsigned char *inData, int inDataLen, int sectorNum)
{
int retVal;
int fd;
unsigned char wrtBuf1[512];

memset(wrtBuf1, 0, 512);

    printf("write floppy disk begin. inDataLen = %d, sectorNum = %d", inDataLen, sectorNum);

fd = open("/dev/rfd0135ds18", O_RDWR);
if(fd == -1)
{
printf("the floppy disk not ready");
return fd;
}

memcpy(wrtBuf1, inData, inDataLen);
lseek(fd, (sectorNum*512), SEEK_SET);
retVal = write(fd, wrtBuf1, 512);
if(retVal != 512)
{
printf("wrtFloppy write %d sector error. write %d byte.", sectorNum, retVal);
return FD_FLOPPY_ERROR;
}

close(fd);
printf("write floppy disk OK.");

return 0;
}
你在这个函数的基础上按照你的需要再包一层,做成一个可执行程序就行了
直接用命令来读写软盘我就不知道了
头文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
以前注册了个ID,已经6000分了,可惜被盗了,现在成穷人了,贴主可怜可怜我,嘿嘿
更正:
int readFloppy(unsigned char *outData, //读出数据的存储BUF,输出
                        int outDataLen, //读出数据的长度,输入 
/***不需要传指针如果你需要输出实际读出的长度,也可以传指针***/
                        int sectorNum)   //扇区号
mark
哎,又没戏了。
其实第二天我就写好了,这几天都没上,不好意思

不过我说话算数!!!

还有个问题,答对了一样有分

怎么从软盘里读出一个文件,以知文件大小,我每次读的时候连后面的都一起读出来了,可我只想读一个文件出来
http://expert.csdn.net/Expert/topic/1859/1859480.xml?temp=.1327631
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘