关于调用linux下的daemon函数出现的线程退出问题。
程序在前台跑正常,一切到后台,线程就退出了。不知道什么原因,求大神指导。。。
#include <stdio.h>
#include <pthread.h>
pthread_t tid;
void *fun()
{
FILE* pf = fopen("test", "ab");
while(1)
{
fprintf(pf, "aaaa\n");
sleep(5);
fflush(pf);
}
}
int aa()
{
pthread_create(&tid, NULL, fun, NULL);
}
int main()
{
aa();
//daemon注释打开线程就自动的退出了
//daemon(0,0);
pthread_join(tid, NULL);
}
...全文
相关推荐
程序崩溃自动重启以及将未捕获到的异常写退出栈
1. 程序崩溃后,让它能自动重启,继续运行。 2. 对崩溃的程序,在退出前,自动在控制台上输出其退出堆栈详情,以便调试。(适合自动测试程序)
glibc: daemon
从 daemon-7里可以看到,这个方法会将之前的线程直接exit_group(0)。这样在判断返回值时其实不是真正的线程的状态。在daemon之前创建的子线程,在主线程执行daemon之后会有不同的getpgid。因为会重新设置setsid。将当前进程运行到后台,脱离当前session、shell。也就是会设置thread的pgid。
守护天使进程退出监视源码20130711
守护天使进程退出监视源码 功能介绍: 实现对一个进程监视,被监视进程异常退出或人为关闭退出后,程序立刻重启启动被监视的进程,代码实现附带了启动参数。
gw_main.cpp.tar.gz_linux 守护
linux守护程序,pthread c++
Linux守护进程
Linux守护进程的写法,并且已通过调试,无任何错误~


