1581526111 发表于 2016-07-14 17:22

在文件某位子写入EOF是不是等于删掉后面的?

在文件某位子写入EOF是不是等于删掉后面的?如果不是那该用什么办法?求教!

lxyscls 发表于 2016-07-14 17:28

man ftruncate

1581526111 发表于 2016-07-14 17:51

如果我想从前面删除呢回复 2# lxyscls


   

MMMIX 发表于 2016-07-14 20:17

本帖最后由 MMMIX 于 2016-07-14 20:18 编辑

1581526111 发表于 2016-07-14 17:22 static/image/common/back.gif
在文件某位子写入EOF是不是等于删掉后面的?

EOF 根本就不是个字符,你怎么写入?

BTW,文件的长度信息是在文件的元数据中记录的,而不是通过文件内容中的某个字符标记文件的结束位置(这种情况下二进制文件就没法保存了),因此要缩减文件的长度,需要调用 truncate(2) 或 ftruncate(2)。

lxyscls 发表于 2016-07-15 09:08

1581526111 发表于 2016-07-14 17:51 static/image/common/back.gif
如果我想从前面删除呢回复 2# lxyscls
把后面的搬上来覆盖,再truncate

1581526111 发表于 2016-07-15 09:27

谢谢4楼叔叔的分析和5楼大哥解答

folklore 发表于 2016-07-15 12:29

不会, EOF只是一个标记, 这个代码可以写入到文件中。

MMMIX 发表于 2016-07-14 20:17 static/image/common/back.gif
EOF 根本就不是个字符,你怎么写入?

BTW,文件的长度信息是在文件的元数据中记录的,而不是通过文件 ...

EOF 根本就不是个字符概念, 只是逻辑上的意义,你怎么写入不能通过写入EOF编码的字符来截断文件, 因为EOF也能是普通的字符编码?

有歧义, 给你订正一下。
页: [1]
查看完整版本: 在文件某位子写入EOF是不是等于删掉后面的?