多个进程写同一个日志文件

AIGPTchina 2014-07-04 11:16:29
多个进程(多个进程不需要通讯。只是都会写同一个日志文件)来写同一个日志文件的话。看书上说是用open 用O_APPEND标志打开一个文件。 在多个进程写同一个文件

的时候就不会出错。我这样打开文件 out = fopen(szFilename,"wb");是可以的吗?
...全文
657 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AIGPTchina 2014-07-05
  • 打赏
  • 举报
回复
解答下给40分。
帅得不敢出门 2014-07-05
  • 打赏
  • 举报
回复
肯定需要同步
CodeC 2014-07-05
  • 打赏
  • 举报
回复
这样打开无法保证进程同步吧
colddown 2014-07-05
  • 打赏
  • 举报
回复
楼主还是看看手册吧,快还准确。
colddown 2014-07-05
  • 打赏
  • 举报
回复
引用 7 楼 lzd_83 的回复:
需要同步!!
我觉得不用同步吧,楼主只是想要多个进程把log打到同一个文件里,这和syslog差不多。
colddown 2014-07-05
  • 打赏
  • 举报
回复
#define LOGFILE "/tmp/mylog"

FILE *fp = fopen(LOGFILE, "a");
setlinebuf(fp);

/* Start logging */
fprintf(fp, "What you want to log\n");
Rotel-刘志东 2014-07-05
  • 打赏
  • 举报
回复
需要同步!!
AIGPTchina 2014-07-05
  • 打赏
  • 举报
回复
直接贴代码吧。
colddown 2014-07-05
  • 打赏
  • 举报
回复
楼主可以用foepn(FILE_NAME, "a")以append模式打开文件,并且用setlinebuf()把文件设置成行缓冲的。每次写log的时候最后用\n结尾,保证不同进程的行不会重叠。

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧