c语言读取文件的命令行,用C语言编制一个对一系列文件反复读写的命令行程序...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

上机程序作成概要及要求

概要:

用C语言编制一个对一系列文件反复读写的命令行程序。

命令名称:

mkfiles

命令形式:

mkfiles [filenum=生成的文件数] [prefix=文件名的前缀]

[writesz=写入数据的size] [writecnt =写操作实行的次数]

说明:

mkfiles — 在当前文件系统上创建指定个数个文件,并以一定的内容进行填充。而后对已创建成功的所有文件的内容的正确性进行验证,待验证完成后,删除所有文件。上述动作反复操作。

选项及参数说明:

filenum — 指定生成文件的总数(1~99999)。(默认值为1)

prefix — 规定生成文件名的前缀。(默认名字是data)

writesz — 指定每次所写入数据的size。如果每次写入数据的size不是sizeof(double)的倍数的话,则根据sizeof(double)对数据size向上取整。例: sizeof(double)为8,指定writesz=11时,向上取整后的writesz的值设定为16。(默认值为4096)

writecnt — 指定上面的写操作所实行的次数。(默认值为1)

#可以任意指定上述选项的组合

举例:

①所有的选项都指定的情况

#mkfiles filenum=1000 perfix=data writesz=1023 writecnt=3

②只指定filenum,prefix选项,其他选项都为默认值

#mkfiles filenum=1000 perfix=data

③不指定任何选项,全部都为默认值

#mkfiles

文件内容:

所创建的每个文件的大小应该为writesz*writecnt。从文件头开始依次写入double型的1,2,3,……等的数字序列。但是,写操作执行时所写入数据的大小是由writesz参数指定的大小,并且该写操作实行由writecnt参数指定的次数。

文件内容的验证:

在包含上述内容的文件全部(个数是由参数filenum指定)都被创建成功后,施行下面的验证处理。

在文件的读取操作中,每次读取的数据量由writesz指定的大小来决定,并且该读取操作也要实行writecnt次。在进行内容验证时,要检查读出来double型的数字是否正确,即确认你读取的内容是否就是你在前面创建文件时写入的内容。

文件名:

文件名中要包含该文件是第几个被生成的那样的文件序号,具体形式如下:

PREFIX.YYYYY.tmp

PREFX:通过prefix指定的前缀

YYYYY:从00001开始的文件序号。最先生成的文件序号为00001,接下来是00002……依次类推,在生成的文件名中通过序号就可以知道该文件是第几个生成的。

# PREFX和YYYYY和tmp之间是用字符 . 来间隔。

错误处理:

错误内容处理

选项指定的形式不正确从stderr中输出以下信息并终止程序。

出错时间 invalid option – 用户指定敲入的选项

文件删除处理的错误忽略(不需要处理)

文件生成时的错误

1,open()错误

2,write()所要求size处理不了

3,close()错误在stderr中输出以下信息,并在暂停10分钟之后继续创建后续的文件

1,出错时间output open error, name=文件名, errno=errno

2,出错时间 write error, name=文件名, I/O len=write函数的返回值, errno=errno

3,出错时间output close error, name=文件名, errno=errno

文件读取错误

1,open()错误

2,read()所要求size处理不了

3,在确认读取内容时出错

4,close()错误在stderr中输出以下信息,并在暂停10分钟之后继续文件内容的验证处理

1,出错时间 input open error, name=文件名, errno=errno

2,出错时间 read error, name=文件名, I/Olen=read的返回值, errno=errno

3,出错时间 data error, name=文件名, expect=期望值, read=错误值, errno=errno

4,出错时间 input close error, name=文件名, errno=errno

★出错时间的输出形式为:yymmdd:hhmmss

程序运行流程

该程序要重复以下处理。

1,参数解析

2,删除以prefix为前缀的所有文件

3,创建filenum个文件(包含文件内容的填充)

4,检查filenum个文件

5,跳到第2项的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值