首页 > 解决方案 > 线程数据记录

问题描述

我试图在运行数据记录器来捕获数据时创建一个多线程程序。这是代码:

void *datalogging(void *data)
{
    time_t rtime;
    time(&rtime);
    FILE *file;
    file = fopen("log.txt","w");
    while(true){
        fprintf(file,"test\n");
        usleep(1000000);
    }
}
int main(int argc, char *argv[])
{
    pthread_t test;
    if ((e = pthread_create(&test, NULL, datalogging, NULL)))
        fprintf(stderr, "not created datalogging thread: %s\n", strerror(e));
}

我正在通过将 test 打印文件中来运行测试,但日志文件似乎不是每 1 秒更新一次,而是在很长一段时间(大约 1 分钟)后更新了一堆测试。我在这里做错了什么,还是每次用户输入时都要更新文件?

标签: clinuxubuntu

解决方案


推荐阅读