24小时热门版块排行榜    

查看: 831  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wecountry

新虫 (初入文坛)

[求助] linux c 只读方式读文件,文件被清空了

在嵌入式linux系统下,C语言编码,以只读的方式去打开文件,while循环 getline函数去读每一行,但是,文件读的过程中,getline就返回了, 后来查了下,文件被清空了.

文件的所在的目录是有读写的权限,但是按照只读的方式打开,为什么会被清空了? 这个和文件系统有关吗?

请高手指教?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wecountry

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by wecountry at 2013-09-02 10:44:21
代码我查过多次,在PC机上跑从没有出现问题, 在板子上有时会有问题, 所以我怀疑是和文件系统有关,我后来把 要读的文件里放到了只读的文件系统里,问题就解决了。

初步判断,是两个文件  a.data 和 a.data-bak 两个node是一样的原因造成,按照只写方式打开a.data,只读的方式打开a.data-bak.

现在问题是:为什么两个文件node成为了一样的?
把两个文件copy到文件系统的 /home 目录下时,node是不一样的,制作成image文件,烧到板子上就成了一样的啦
4楼2013-09-02 19:36:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

wecountry

新虫 (初入文坛)

jjdg: 感谢分享经验 2013-09-02 11:02:37
代码我查过多次,在PC机上跑从没有出现问题, 在板子上有时会有问题, 所以我怀疑是和文件系统有关,我后来把 要读的文件里放到了只读的文件系统里,问题就解决了。
3楼2013-09-02 10:44:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见