出现此类原因其实很简单,就是没有把stdlib.h包含进来,加上就没问题了。
以此类推,编译后出现警告:隐式声明与内建函数’XXX’不兼容的问题所在都是因为没有包含相应的头文件,加上就OK!
#include<unistd.h> #include<signal.h> #include<sys/param.h> #include<sys/types.h> #include<sys/stat.h> void init_daemon(void) { int pid; int i; if(pid==fork()) { exit(0); } else if(pid<0) { exit(1); } setsid(); if(pid==fork()) { exit(0); } else if(pid<0) { exit(1); } for(i=0;i<NOFILE;i++) { close(i); } chdir("/tmp"); umask(0); return; }
#include<stdio.h>
#include<time.h>
void init_deamon(void);
main()
{
FILE *fp;
time_t t;
init_daemon();
while(1)
{
sleep(60);
if((fp=fopen("test.log","a"))>=0)
{
t=time(0);
fprintf(fp,"I am here at %s\n",asctime(localtime(&1)));
fclose(fp);
}
}
}