how to programing daemon to create log record every second

i write .....

#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>

#define RUNNING_DIR     "/tmp"
#define LOCK_FILE       "exampled.lock"
#define LOG_FILE        "exampled.log"

void log_message(filename,message)
char *filename;
char *message;
{
FILE *logfile;
        logfile=fopen(filename,"a");
        if(!logfile) return;
        fprintf(logfile,"%s\n",message);
        fclose(logfile);
}

void signal_handler(sig)
int sig;
{
        switch(sig) {
        case SIGHUP:
                log_message(LOG_FILE,"hangup signal catched");
                break;
        case SIGTERM:
                log_message(LOG_FILE,"terminate signal catched");
                exit(0);
                break;
        }
}


void daemonize()
{
int i,lfp;
char str[10];
        if(getppid()==1) return; /* already a daemon */
        i=fork();
        if (i<0) exit(1); /* fork error */
        if (i>0) exit(0); /* parent exits */
        /* child (daemon) continues */
        setsid(); /* obtain a new process group */
        for (i=getdtablesize();i>=0;--i) close(i); /* close all descriptors */
        i=open("/dev/null",O_RDWR); dup(i); dup(i); /* handle standart I/O */
        umask(027); /* set newly created file permissions */
        chdir(RUNNING_DIR); /* change running directory */
        lfp=open(LOCK_FILE,O_RDWR|O_CREAT,0640);
        if (lfp<0) exit(1); /* can not open */
        if (lockf(lfp,F_TLOCK,0)<0) exit(0); /* can not lock */
        /* first instance continues */
        sprintf(str,"%d\n",getpid());
        write(lfp,str,strlen(str)); /* record pid to lockfile */

        signal(SIGCHLD,SIG_IGN); /* ignore child */
        signal(SIGTSTP,SIG_IGN); /* ignore tty signals */
        signal(SIGTTOU,SIG_IGN);
        signal(SIGTTIN,SIG_IGN);
        signal(SIGHUP,signal_handler); /* catch hangup signal */
        signal(SIGTERM,signal_handler); /* catch kill signal */

}


main()
{

        daemonize();
        while(1)
        sleep(1); /* run */
}

it's work for daemon and how to programing for this daemon create log record every second (exampled.log)

log record data like this....

1
2
3
4
5
6
7
8
9
10

and loop count infinity

thank you for advanced.

static int  i;
main()
{
    char *buf;
    daemonize();
    while(1)
    {
        buf = malloc(10*sizeof(char));
    
        sprintf(buf,"%d",i);
        
        log_message(LOG_FILE,buf);

        free(buf);
    
        i++;
        
            sleep(1); /* run */
    }
}

thank you very much