当前位置: 技术问答>linux和unix
linux下,如何向文件中写入文件结束符。
来源: 互联网 发布时间:2017-01-20
本文导语: 小弟最近做一个东西,碰到点麻烦,望大神指点一二。 首先,小弟往一个文件中写入了一个16字节的unsigned char *类型的字符串。然后,我想把他还原回去,也就是把这十六个字符从文件中删掉。 我的一个设想就是...
小弟最近做一个东西,碰到点麻烦,望大神指点一二。
首先,小弟往一个文件中写入了一个16字节的unsigned char *类型的字符串。然后,我想把他还原回去,也就是把这十六个字符从文件中删掉。
我的一个设想就是,将文件指针偏移到十六个字节开始处,然后写入一个文件结束符就好了。
但是我把-1写入进去之后,发现,文件并没有到这里停止,而是仍然在十六个字节之后结尾,这件事情让我一度很纠结。
我认为应该是我写入的文件结束符号有问题才会导致这样。因此,来征询一下帮助。
谢谢。
首先,小弟往一个文件中写入了一个16字节的unsigned char *类型的字符串。然后,我想把他还原回去,也就是把这十六个字符从文件中删掉。
我的一个设想就是,将文件指针偏移到十六个字节开始处,然后写入一个文件结束符就好了。
但是我把-1写入进去之后,发现,文件并没有到这里停止,而是仍然在十六个字节之后结尾,这件事情让我一度很纠结。
我认为应该是我写入的文件结束符号有问题才会导致这样。因此,来征询一下帮助。
谢谢。
|
直接写入文件结束符好像没有办法
可以试试调用truncate函数
int truncate ( Path, Length)
可以试试调用truncate函数
int truncate ( Path, Length)
|
还是ftruncate 吧
num = lseek(fd, 0, SEEK_END);
ftruncate(fd, num-16);
num = lseek(fd, 0, SEEK_END);
ftruncate(fd, num-16);
|
这方法好 移到文件末 然后改变长度
|
++
|
你fclose文件描述符不就好了
|
c的file最怕修修改改了,有种通用处理方法利用another file来处理