C守护程序sleep()

Aze*_*ael 2 c sleep daemon

我正在用C ++运行一个简单的守护程序测试。它在没有sleep()的情况下运行良好,但是如果我添加sleep()函数,它将运行一次,然后保持睡眠状态。此外,第一次运行应该在logs / log.dat文件中打印一次“ Hello”,但这也不会发生。这是代码:

 #include <cstdlib>  
 #include <cstdio>  
 #include <iostream>  
 #include <unistd.h>  
 using namespace std;  
 int main(int argc, char** argv) {  
    FILE *f = NULL;   
    if ((f = fopen("logs/log.dat  ", "w")) != NULL) {  
        if (daemon(0, 0) >= 0) {  
            while (true) {  
                fprintf(f, "%s\n", "Hello");  
                sleep(5);  
            }  
        } else {  
            fprintf(f, "%s\n", "Error detaching terminal");  
        }  
    } else {  
        printf("%s\n", "Cannot open log file");  
    }  
    return 0;  
}
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 5

尝试在fprintf()之后添加fflush()。它可能正在工作,但尚未将数据写入磁盘。