一种写文件操作的方法

文档序号:6558850阅读:136来源:国知局
专利名称:一种写文件操作的方法
技术领域
本发明涉及文件操作技术,尤其涉及一种写文件操作的方法。
背景技术
文件操作技术应用广泛,在科技开发和设备运行中经常用到,比如日志文件的记录,数据配置文件的记录,其它信息的记录等都要将内存中的很多信息写入文件中。
现有的写文件操作方法是连续将信息写入文件,具体为打开文件后,不断的调用写函数将信息写入文件中,直至所有信息全部写完后,最后再关闭文件;而且,现有的写文件操作是分散在软件运行系统的许多任务中。
从以上的现有技术可以看出,现有的写文件操作有如下缺点1)因为是连续写文件的方式,该任务只有全部信息写完才会终止。一个大的信息正在写文件时,如果用户想中途终止写文件的操作,比如下发终止当前执行的命令,或者,在系统复位前希望停止文件的写操作,是不能达到目的的。
2)当前有写文件操作时,如果执行系统复位,由于是强制中断写文件操作,将可能造成文件丢失,破坏文件系统,甚至造成系统崩溃的后果。
3)对文件的直接操作分散在软件运行系统的各个模块中,不便于统一管理文件的操作。

发明内容
本发明的目的是提供一种将待写入的信息分为小信息块,能实现在信息写入过程中终止写操作的写文件操作方法。
为达到上述目的,本发明通过以下技术方案实现一种写文件操作的方法,包括步骤1)文件操作任务接收到文件写入请求后,将待写入的信息分成信息块,发送信息块写入请求到任务信息接收队列;2)所述任务信息接收队列收到信息块写入请求后,把信息块写入文件,向所述文件操作任务发送信息块写入确认;3)所述文件操作任务判断所述待写入的信息块是否已全部写入文件,如果否,依据还没写入的所述待写入信息块的信息,发送信息块写入请求到所述任务信息接收队列,继续步骤2);否则,结束。
优选的,在所述步骤1)之前,包括步骤a)所述文件操作任务接收到文件打开请求,打开文件;在所述步骤3)全部信息块写入结束之后,包括步骤b)所述文件操作任务接收到文件关闭请求,关闭文件。
优选的,所述步骤3)之前,当文件操作任务接收到信息块写入确认后,文件操作任务判断写操作标志是否为终止,如果否,进入步骤3);否则,关闭文件,发送终止写文件确认。
优选的,所述步骤2)还包括,所述任务信息接收队列收到终止写文件请求,文件操作任务把写操作标志设置为终止。
优选的,所述终止写文件请求由用户操作任务发出或由操作管理任务发出。
优选的,所述操作管理任务发出终止写文件请求之前,操作管理任务接收到用户接口任务发出的复位命令;所述操作管理任务在接收到所述终止写文件确认后,发送复位确认给所述用户接口任务,执行复位操作。
优选的,所述文件操作任务发送终止写文件确认之后,判断所述待写入的信息块是否已全部写入文件,如果是,发送文件写入确认成功响应;否则,发送文件写入确认失败响应。
优选的,当系统任务需要写文件操作时,所述系统任务向所述文件操作任务发送文件打开请求和文件写入请求。
优选的,设置发送给所述任务信息接收队列的请求信息的优先级。
优选的,设置终止写文件请求信息的优先级为最高优先级。
以上技术方案可以看出,由于本发明在接收到文件写入请求后,将待写入的信息分成小信息块,以块为单位发送信息块写入请求到任务信息接收队列。由于其它任务的请求也是发送到同样的任务信息接收队列,其它任务的请求和写文件的请求具有同等的机会,在信息接收队列中排队等待处理;所以在执行某一个信息块写入请求的过程中,文件操作任务还可以同时处理另一个信息块写入请求,或者处理其它任务请求,实现多请求同时处理。
进一步,本发明在文件操作任务接收到信息写入确认后,判断写操作标志是否为终止,如果否,继续下一信息块写入操作,如果是,则关闭文件;通过这样的方式,利用改变写操作标志的方法,实现在写操作过程中终止写文件的目的。
进一步,用户操作任务或操作管理任务发送终止写文件请求到任务信息接收队列,因为该请求和信息块写入请求对于文件操作任务对信息接收队列排队请求的处理来说具有均等机会,这就使得能够实现信息写入过程中,能够处理终止写文件请求;终止写文件请求把写操作标志设置为终止,当文件操作任务判断写操作标志为终止时,关闭文件,不在继续写文件操作。
进一步,用户接口任务发送复位请求给操作管理任务,操作管理任务发送终止写文件请求到任务信息接收队列,文件操作任务在处理终止写文件请求后,关闭当前写入的文件,然后发送终止写文件确认给操作管理任务,操作管理任务再执行复位操作;这种安全关闭文件后再复位的方式,保护了文件系统和文件。
进一步,在本技术方案中,当系统任务需要写文件操作时,集中向一个文件操作任务发送文件打开请求和文件写入请求,所有对文件的写操作放在一个任务中执行,集中处理的方式带来管理上的便利。
进一步,对发送到任务信息接收队列的请求信息进行优先级设置,优先级高的请求优先处理;通过这种方式,文件操作任务可以对重要的信息优先处理。
进一步,将终止写文件请求的优先级设置为最高优先级,发出该请求后,因为该请求为文件操作任务最快响应的请求,故可以中断所有当前正在执行的写文件操作。


图1为本发明的方法流程图;图2为本发明在信息写入过程中没有终止操作的具体方法流程图;图3为本发明在信息写入过程中有终止操作的具体方法流程图。
具体实施例方式
本发明提供了一种写文件操作的方法,本技术方案基本思想是建立一个统一管理的文件操作任务,当系统任务需要写文件操作时,向该文件操作任务发起写文件的请求;文件操作任务将待写入的信息分成小块,以块为单位写入文件,在写完单位块信息后,判断写操作标志是否为终止,如果否,继续下一块信息写入,如果是,则中断写操作;如希望在写文件过程中终止写操作,发送终止写文件请求,把写操作标志设置为终止。
请参考图1,为本发明的方法流程图,本技术方案包括P1)文件操作任务接收到文件写入请求后,将待写入的信息分成信息块,发送信息块写入请求到任务信息接收队列。
P2)所述任务信息接收队列收到信息块写入请求后,把信息块写入文件,向所述文件操作任务发送信息块写入确认。
P3)所述文件操作任务判断所述待写入的信息块是否已全部写入文件,如果否,依据还没写入的所述待写入信息块的信息,发送信息块写入请求到所述任务信息接收队列,继续步骤P2);否则,结束。
为进一步理解本发明,以下结合具体实施方式
对上述的技术方案进行详细的描述。
请参考图2,为本发明在信息写入过程中没有终止操作的具体方法流程图,包括以下步骤A1.建立一个统一管理的文件操作任务,当系统任务需要写文件的操作时,向该文件操作任务发出文件打开请求。文件操作任务打开文件,然后发送文件打开确认给系统任务。
上述文件打开请求包括请求打开文件的文件名。
A2.系统任务发送文件写入请求给文件操作任务。文件写入请求包括文件名,缓存区(buffer),待写入信息的长度。
A3.文件操作任务将待写入信息进行分块,将大信息分成很多小信息块处理。分块举例以10K为单位进行分块,不足10K的文件只有一个信息块。
A4.文件操作任务发送信息块写入请求到任务信息接收队列。具体为,按分块的顺序,首先发送序号为1信息块的写入请求到任务信息接收队列。
A5.任务信息接收队列接收请求,任务信息接收队列用以接收外部触发的事件。
A6.在接收到信息块写入请求后,文件操作任务把相应的信息块写入文件中。
A7.信息块写入文件之后,文件操作任务发送信息写入确认到自己的消息接收队列。
A8.接收到信息写入确认后,文件操作任务判断待写入的信息是否已经全部写入文件如果否,实施步骤A82,依据还没写入的待写入信息块的信息,发送信息块写入请求到任务信息接收队列,继续步骤A5。具体为,如第一次发送的是序号为1信息块的写入请求,则按分块顺序,发送序号为2信息块的写入请求,以此类推。
如果是,实施步骤A81,文件操作任务发送文件写入确认给系统任务,确认待写入信息全部写入文件。
A9.系统任务发送关闭文件请求到文件操作任务,文件操作任务接收到该请求后,关闭文件,并发送文件关闭确认给系统任务。
请参考图3,为本发明在信息写入过程中有终止操作的具体方法流程图,包括以下步骤B1.建立一个统一管理的文件操作任务,当系统任务需要写文件的操作时,向该文件操作任务发出文件打开请求。文件操作任务打开文件,然后发送文件打开确认给系统任务。
上述文件打开请求包括请求打开文件的文件名。
B2.系统任务发送文件写入请求给文件操作任务。文件写入请求包括文件名,缓存区(buffer),待写入信息的长度。
B3.文件操作任务将待写入信息进行分块,将大信息分成很多信息块处理。分块举例以10K为单位进行分块,不足10K的文件只有一个信息块。
B41.文件操作任务发送信息块写入请求到任务信息接收队列;具体为,按分块的先后顺序发送信息块的写入请求。
任务信息接收队列可以同时接收不同的请求。当前的信息块写入请求,其它不同文件名(即系统不同任务发出的写文件请求)的信息块写入请求和其它类型的请求(比如终止写文件请求),这些请求具有同样的机会,在信息队列中排队等待处理。
B42.用户操作任务或者操作管理任务发送终止写文件请求到任务信息接收队列。
具体为,在写文件操作过程中,如果用户希望中途终止写文件,可以通过用户操作任务发送终止写文件请求到任务信息接收队列;如果触发了系统复位,则用户接口任务发送复位请求到操作管理任务,操作管理任务发送终止写文件请求到任务信息接收队列。
B5.任务信息接收队列接收请求,优先处理优先级高的请求。
发送到文件操作任务的请求,可以预先设定请求消息的优先级。如果两个文件的写入优先级是相同的,那么文件操作任务可以宏观上同时处理两个文件。例如,这一次是写文件1的一个信息块,下一次写文件2的一个信息块,交替进行。如果优先级不同,那么文件操作任务会先将优先级高的文件写入完毕后,再开始执行优先级低的文件的写入。
以下对本发明优先级的应用举例文件操作任务可以定义三个消息接收队列,优先级分别为0、1、2,在这里,0级为最高优先级。每次扫描接收队列时,先检查队列0,如果队列0为空,再检查处理队列1的消息,如队列1也为空,再检查处理队列2的消息。系统任务在发送文件写入请求消息时,首先设置信息的优先级,然后文件操作任务根据请求信息的优先级分别放入对应的任务消息接收队列。如任务1写文件请求信息优先级为1,发送该请求消息到队列1,任务2写文件请求信息的优先级为2,发送该请求消息到队列2,由于文件操作任务会先读取队列1的消息进行处理,将文件1分块写入,待全部写入完毕后,文件操作任务读取队列1为空,然后才读取存放在队列2里面的任务2写文件请求消息,进行处理。
为了能停止写文件的操作,终止写文件请求信息的优先级要求设定为最高,即为0,这样可以保证能停止所有文件的写入操作。
B61.如果写文件请求信息优先级相同,则按时间的先后,处理请求信息,如果同一时间有几个不同优先级的请求,则先处理优先级级高的请求,先将优先级高的信息块写入文件。
在本实施具体流程中,文件操作任务还收到了终止写文件请求,执行步骤B62,设置写操作标志为终止。应用举例预置写操作标志的变量为stopflag,使用stopflag为1表示终止,当文件操作任务在执行信息块写入的处理时,信息接收队列收到了终止写文件请求的消息,文件操作任务把写操作标志的变量stopflag设置为1。
B7.信息块写入文件之后,文件操作任务发送信息写入确认到自己的消息接收队列。
B8.在本具体流程中,文件操作任务通过判断发现写操作标志为终止。
B9.文件操作任务关闭文件,如果终止写文件请求由用户操作任务发出,则将终止写文件确认发送给用户操作任务;如果终止写文件请求由操作管理任务发出,则将终止写文件确认发送给操作管理任务。对于后者,操作管理任务收到确认信息后,发送复位确认给用户接口任务,然后执行复位操作。
B10.判断信息块是否全部写入文件,如果是,执行步骤B101,向系统任务发送文件写入确认成功响应;否则,执行步骤B102,向系统任务发送文件写入确认失败响应。
可以理解的是,系统任务在接收到文件写入确认失败响应后,等待收到下一次触发条件,向文件操作任务重发文件写入请求;或按其它失败机制处理。
以上对本发明所提供的一种写文件操作的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种写文件操作的方法,其特征在于,包括步骤1)文件操作任务接收到文件写入请求后,将待写入的信息分成信息块,发送信息块写入请求到任务信息接收队列;2)所述任务信息接收队列收到信息块写入请求后,把信息块写入文件,向所述文件操作任务发送信息块写入确认;3)所述文件操作任务判断所述待写入的信息块是否已全部写入文件,如果否,依据还没写入的所述待写入信息块的信息,发送信息块写入请求到所述任务信息接收队列,继续步骤2);否则,结束。
2.根据权利要求1所述的方法,其特征在于,在所述步骤1)之前,包括步骤a)所述文件操作任务接收到文件打开请求,打开文件;在所述步骤3)全部信息块写入结束之后,包括步骤b)所述文件操作任务接收到文件关闭请求,关闭文件。
3.根据权利要求2所述的方法,其特征在于,所述步骤3)之前,当文件操作任务接收到信息块写入确认后,文件操作任务判断写操作标志是否为终止,如果否,进入步骤3);否则,关闭文件,发送终止写文件确认。
4.根据权利要求3所述的方法,其特征在于,所述步骤2)还包括,所述任务信息接收队列收到终止写文件请求,文件操作任务把写操作标志设置为终止。
5.根据权利要求4所述的方法,其特征在于,所述终止写文件请求由用户操作任务发出或由操作管理任务发出。
6.根据权利要求5所述的方法,其特征在于,所述操作管理任务发出终止写文件请求之前,操作管理任务接收到用户接口任务发出的复位命令;所述操作管理任务在接收到所述终止写文件确认后,发送复位确认给所述用户接口任务,执行复位操作。
7.根据权利要求6所述的方法,其特征在于,所述文件操作任务发送终止写文件确认之后,判断所述待写入的信息块是否已全部写入文件,如果是,发送文件写入确认成功响应;否则,发送文件写入确认失败响应。
8.根据权利要求7所述的方法,其特征在于,当系统任务需要写文件操作时,所述系统任务向所述文件操作任务发送文件打开请求和文件写入请求。
9.根据权利要求1~8其中之一的方法,其特征在于,设置发送给所述任务信息接收队列的请求信息的优先级。
10.根据权利要求9所述的方法,设置终止写文件请求信息的优先级为最高优先级。
全文摘要
本发明公开了一种写文件操作的方法,本发明的基本思想是建立一个统一管理的文件操作任务,当系统任务需要写文件操作时,向该文件操作任务发起写文件的请求;文件操作任务将待写入的信息分成小块,以块为单位写入文件,在写完单位块信息后,判断写操作标志是否为终止,如果否,继续下一块信息写入,如果是,则中断写操作;如希望在写文件过程中终止写操作,发送终止写文件请求,把写操作标志设置为终止。本发明可以实现将待写入的信息分为小信息块,在信息写入过程中能够终止写文件操作。
文档编号G06F9/46GK1967530SQ20061008346
公开日2007年5月23日 申请日期2006年5月30日 优先权日2006年5月30日
发明者殷红军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1