#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
static char *runStatusFile = "/syscfg/etc/runStatusFile";
//static char *runStatusFile = "runStatusFile";
FILE *pFile = NULL;
char runCountStr[10]={0};
unsigned runCountInt = 0;
char runTimeStr[15]={0};
unsigned runTimeInt = 0;
void doTask()
{
pFile = fopen(runStatusFile, "r+");
/*
if(NULL == pFile)
{
pFile = fopen(runStatusFile,"w+");
fseek (pFile, 0L, SEEK_SET);
fwrite("0", sizeof(char), 1, pFile);
fseek (pFile, 6L, SEEK_SET);
fwrite("0", sizeof(char), 1, pFile);
}
*/
fseek (pFile, 11L, SEEK_SET);
fread (runTimeStr, sizeof(char), 10, pFile);
runTimeInt = atoi(runTimeStr);
runTimeInt += 30;
fseek (pFile, 11L, SEEK_SET);
sprintf(runTimeStr,"%d",runTimeInt);
fwrite(runTimeStr, sizeof(char),10, pFile);
/*
fseek (pFile, 11L, SEEK_SET);
fread (runTimeStr, sizeof(char), 10, pFile);
printf("runTimeStr = %s\n",runTimeStr);
*/
fclose(pFile);
}
// ½¨Á¢ÐźŴ¦Àí»úÖÆ
void init_sigaction(void)
{
struct sigaction tact; /*Ðźŵ½ÁËÒªÖ´ÐеÄÈÎÎñ´¦Àíº¯ÊýΪdoTask*/
tact.sa_handler = doTask;
tact.sa_flags = 0; /*³õʼ»¯Ðźż¯*/
sigemptyset(&tact.sa_mask); /*½¨Á¢ÐźŴ¦Àí»úÖÆ*/
sigaction(SIGALRM, &tact, NULL);
}
void init_time()
{
struct itimerval value; /*É趨ִÐÐÈÎÎñµÄʱ¼ä¼ä¸ôΪ30Ãë0΢Ãë*/
value.it_value.tv_sec = 30;
value.it_value.tv_usec = 0; /*É趨³õʼʱ¼ä¼ÆÊýҲΪ30Ãë0΢Ãë*/
value.it_interval = value.it_value; /*ÉèÖüÆÊ±Æ÷ITIMER_REAL*/
setitimer(ITIMER_REAL, &value, NULL);
}
int main()
{
pFile = fopen(runStatusFile, "r+");
if(pFile == NULL)
{
Ŀǰ¸÷ÖÖLinux·¢Ðа涼֧³ÖUTF-8±àÂ룬µ±Ç°ÏµÍ³µÄÓïÑÔºÍ×Ö·û±àÂëÉèÖñ£´æÔÚһЩ»·¾³±äÁ¿ÖУ¬¿ÉÒÔͨ¹ýlocaleÃüÁî²é¿´£º
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPE ......