如果两个进程同时打开一个文件会有什么结果?如果之前指定了O_APPEND呢?

[复制链接]
查看11 | 回复2 | 2016-2-1 01:42:21 | 显示全部楼层 |阅读模式
光打开是没有什么后果的,两个进程都可以正常的读,但如果指定了O_APPEND的话就是这样了:A进程如果先在文件尾部加了一段内容A,那么此时文变为了“原内容”+A,但是对于B进程来说,它本想只在“原内容”后面加一段B,但由于不知道A也打开了文件,所以很单纯的Append了一段B在文件后,所以导致的结果是,A的真实内容为“原内容”+A+B而不是B预想的“原内容”+B,这样的话就有问题了。...
回复

使用道具 举报

千问 | 2016-2-1 01:42:21 | 显示全部楼层
没有什么后果吧。。就好像打开两个QQ文件一样。在进程里。会有两个QQ文件进程。我觉的大部分的程序都只支持一次开启的功能吧。就好比酷狗这种播放器。你点击程序进行程序。再点也不会再开启第二次了。但是像IE浏览器这种。打开几个也只有一个进程啊。只不过占的内存大小的关系罢了。至于指定了O_APPEND这个好像在视窗系统下没有影像吧。至于你在写C程序的时候才会有吧。指...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行