今天做的系统里有这么一部分,当数据发送到数据库(数据库在远程计算机上) 失败时,将文件存储在本地。当数据库连接变为可用时,将存储在本地文件中的数据取出,发送到数据库,并将已发送的内容从本地文件中删除。
因为使用的是非托管的C++,并且不能使用MFC,而且本系统还有可能移植到其他OS上,因此考虑用标准C/C++库函数。从前也用过一些,不过都是写入操作,今天需要用到删除,仔细查了一下,才发现没有可用的函数!
在这里记录几个库函数以便将来使用
int _fileno(FILE *stream) 这个函数可以将流文件转换成句柄,当使用fwrite, fread, fprintf等函数的时候都需要用到FILE声明的流文件,但是要获取文件长度时,要使用_filelength(int filehandle) ,这时,_fileno就派上用场了。
一个非常有用的库函数chsize。这个函数可以改变文件大小,在使用时,如果改变后的文件比原来的小,那么超出部分将丢失;如果改变后的文件比原来的大,则在末尾添加'/0'。