多线程写log的问题

hy_skyno1 2009-07-15 09:45:02
我需要多线程写log到同一个文件。。有这种类似的例子么。。。
...全文
846 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tom56 2009-07-16
  • 打赏
  • 举报
回复
把锁管好就行啦。把你的buff和控制块管好。
AppZ 2009-07-16
  • 打赏
  • 举报
回复
各位大牛,学习了
  • 打赏
  • 举报
回复
VOID InitializeCriticalSection(
LPCRITICAL_SECTION lpCriticalSection // critical section
);

如果要跨平台的话,用pthread-win32就行了
沙漠里的海豚 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hy_skyno1 的回复:]
其实我想知道。。。C里面用什么加锁和解锁。。在windows环境下
[/Quote]

windows下可以用CriticalSection函数族来实现加锁解锁的,
加锁用 EnterCriticalSection函数,解锁用LeaveCriticalSection函数。


如果是linux的话可以用pthread_mutex的函数族。
加锁用pthread_mutex_lock,解锁用pthread_mutex_unlock。

具体的使用方法可以去查下msdn或linux的man手册。
hy_skyno1 2009-07-16
  • 打赏
  • 举报
回复
这个是需要DLL的。。我是想windows里可不可以有和Linux里flock这种函数。。我只需要在写入前后加上就可以了
jixingzhong 2009-07-16
  • 打赏
  • 举报
回复
一个多线程的日志记录DLL:
http://www.vckbase.com/document/viewdoc/?id=718

看看文章介绍,可以下载源码工程研究一下
hy_skyno1 2009-07-16
  • 打赏
  • 举报
回复
其实我想知道。。。C里面用什么加锁和解锁。。在windows环境下
  • 打赏
  • 举报
回复
log4c完全符合楼主需求!
http://log4c.sourceforge.net/
NKLoveRene 2009-07-15
  • 打赏
  • 举报
回复
照着改一下就是c了。。。
每个线程都加锁,写文件,解锁。。。
hy_skyno1 2009-07-15
  • 打赏
  • 举报
回复
呃。。。。我这个是C的。。有C的例子么。。。
jamesjinyongming 2009-07-15
  • 打赏
  • 举报
回复

LogCS.Lock();
CString strFileName = "log.txt";
CTime CurrentTime = CTime::GetCurrentTime();
CFile TxtFile;
if(!TxtFile.Open(strFileName,CFile::modeWrite))
TxtFile.Open(strFileName,CFile::modeCreate|CFile::modeWrite);
TxtFile.SeekToEnd();
CString ss;
ss = CurrentTime.Format("%Y-%m-%d %H:%M:%S :")+strInfo+"\r\n\r\n";
TxtFile.Write(ss,ss.GetLength());
TxtFile.Close();
LogCS.Unlock();
ouyh12345 2009-07-15
  • 打赏
  • 举报
回复
log4cpp
log4cxx

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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