免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linuxiang
打印 上一主题 下一主题

多个进程把日志记录在同一个文件的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-08-04 11:53 |只看该作者
明白了:)

论坛徽章:
0
22 [报告]
发表于 2006-08-04 12:05 |只看该作者
除非你在ISR中调用write,否则在应用层write是不可能被write中断的。

论坛徽章:
0
23 [报告]
发表于 2006-08-04 17:01 |只看该作者
CONFORMING TO
       SVr4, SVID, POSIX, X/OPEN, 4.3BSD.  SVr4  documents  addi-
       tional  error  conditions  EDEADLK, ENOLCK, ENOLNK, ENOSR,
       ENXIO, EPIPE, or ERANGE.  Under SVr4 a write may be inter-
       rupted  and return EINTR at any point, not just before any
       data is written.

NOTES
       A successful return from write does not make any guarantee
       that  data  has  been committed to disk.  In fact, on some
       buggy implementations, it does  not  even  guarantee  that
       space  has  successfully  been reserved for the data.  The
       only way to be sure is to call fsync(2) after you are done
       writing all your data.

//Under SVr4 a write may be interrupted  and return EINTR(中断) at any point, not just before any data is written.

论坛徽章:
0
24 [报告]
发表于 2006-08-04 17:04 |只看该作者
它说这个”A successful return from write does not make any guarantee
       that  data  has  been committed to disk“

和我们讨论的write的”原子“性没有关系。
这个是说数据在”内河文件”--BUFFER还是具体到磁盘了。

论坛徽章:
0
25 [报告]
发表于 2006-08-05 09:52 |只看该作者

please use mutex

please use mutex.
lock();
...
unlock();
.....

论坛徽章:
0
26 [报告]
发表于 2006-08-05 13:56 |只看该作者
如果是多个cpu呢?

论坛徽章:
0
27 [报告]
发表于 2006-08-07 08:53 |只看该作者
这和Windows不同,Linux会自动进行锁定,应该没有问题!

论坛徽章:
0
28 [报告]
发表于 2006-08-07 09:22 |只看该作者
我赞成前面说的消息队列+单独进程轮询写入来进行日志记录,这样可以避开write是否是原子操作的问题

论坛徽章:
0
29 [报告]
发表于 2006-08-07 10:07 |只看该作者
原子操作的意思是:一系列的操作,比如write系统调用,并不是简单的一个动作,但是系统能够保证write调用要么全部成功,要么全部失败,不会出现写了一半的情况。反正不会出现两个write的数据交叉的情况。

论坛徽章:
0
30 [报告]
发表于 2006-08-07 13:22 |只看该作者
原帖由 原来如此 于 2006-8-7 09:22 发表
我赞成前面说的消息队列+单独进程轮询写入来进行日志记录,这样可以避开write是否是原子操作的问题


简单、安全、干净。正解!

参考syslog的设计。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP