出現此類原因其實很簡單,就是沒有把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);
}
}
}