使用MMF(内存映射文件)作为日志记录

时间:2017-11-27 09:49:53

标签: c unix logging file-descriptor memory-mapped-files

我必须使用内存映射文件从我正在工作的项目中写下一些数据。例如:

  

- 进程开始时和结束时的PID

     

- 无论何时初始化并结束线程。

等。但我无法弄清楚,我能找到的信息非常有限,如何做这样的事情。我在这里尝试创建有问题的日志:

void create_log(){
  char *addr;
  struct stat sb;
  if((flog = open(LOG, O_WRONLY|O_NONBLOCK)) < 0){
    perror("Couldn't open log for writing");
    exit(0);
  }
  if(fstat(flog, &sb) == -1){
    perror("fstat");
    close(flog);
    exit(0);
  }
  addr = mmap(NULL, sb.st_size,PROT_WRITE,MAP_SHARED,flog,0);
}

如果等待一个功能性的例子是要问的话,我至少想要找到我需要学习的信息的链接。提前谢谢!

0 个答案:

没有答案