奇怪的追加行为

时间:2010-11-08 12:38:14

标签: c file append

如果我有一个包含

的文件
manual
/lib/plymouth/themes/default.plymouth

/lib/plymouth/themes/spinfinity/spinfinity.plymouth
10
/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
100

然后我以a模式打开它,然后执行

fprintf(f, "/el/derpito.plymouth\n100\n");

为什么文件现在包含这个?

manual
/lib/plymouth/themes/default.plymouth

/lib/plymouth/themes/spinfinity/spinfinity.plymouth
10
/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
100

/el/derpito.plymouth
100

我希望文件是这样的:

manual
/lib/plymouth/themes/default.plymouth

/lib/plymouth/themes/spinfinity/spinfinity.plymouth
10
/lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
100
/el/derpito.plymouth
100

2 个答案:

答案 0 :(得分:1)

在你写这篇文章之前,也许文件末尾有一个孤独的\ n或\ cr卡住了。我用十六进制编辑器打开它,看看。

答案 1 :(得分:0)

我的第一个猜测是你的文件的最后一个字符(在追加之前)是换行符,之后追加附加新行。