- 论坛徽章:
- 0
|
麻烦帮我看看什么错误?
这是pro*c下的一段代码,我不知那儿出错呢,proc不能通过。
#include "zltsl.c"
#include <string.h>;
#include <sqlca.h>;
#define NAME_LENGTH 8
#define ARRAY_LENGTH 5
char Ora_passwd[100];
char Ora_pwd[100];
long m_WaitTime;
void doInit();
void WriteStrLog();
int system_init();
void sql_error();
main()
{
int i,ret;
int s;
WriteStrLog("开始初始化系统:" ;
ret=system_init();
if (ret<0) {
printf("System init failed!\n" ;
exit(0);
};
WriteStrLog("系统初始化完成,开始系统的监视工作!" ;
signal (SIGINT, SIG_IGN);
signal (SIGQUIT, SIG_IGN);
signal (SIGHUP, SIG_IGN);
signal(SIGPIPE,SIG_IGN);
// if (argc<2) {
doInit();
/*}
else {
sprintf(m_SmsgSingleSend.phoneStr,"%s",argv[1]);
sprintf(m_SmsgSingleSend.msgStr,"%s",argv[2]);
SendMessageOut(MSG_SEND_SINGLE,argv[1],argv[2]);
};*/
}
int system_init()
{
char tmpstr[280],dirStr[256];
int i;
/***********************************************************/
printf("System Back Watcher is starting...\n" ;
memset(tmpstr,0,sizeof(tmpstr));
strcat(tmpstr,"watcher.conf" ;
if (setinifilename(tmpstr)<0) {
printf("Error!\n" ;
return -1;
};
printf("Loading System Back Watcher Configuration...\n" ;
m_WaitTime=getparamenter ("m_WaitTime", 0, NULL);
if (m_WaitTime<0) {
printf("Error!\n" ;
return -1;
};
//getparamenter("Ora_user", 1, Ora_user);
//getparamenter("Ora_pwd", 1, Ora_pwd);
memset(tmpstr,0,sizeof(tmpstr));
sprintf(tmpstr,"%s/sms.conf",dirStr);
if (setinifilename(tmpstr)<0) {
printf("Error!\n" ;
return -1;
};
printf("System ready!\n" ;
return 1;
}
void doInit()
{
int WaitAHour=0;
time_t tt;
struct tm* st;
int count_del;
int WriteFlag;
char strTmp[1024];
unsigned long NowTime,tmpTime;
unsigned long iTime,DEndTime1,DEndTime2;
//int errFlag=0;
while(1){
//if (errFlag) sleep(1000);
if (WaitAHour) {
WriteStrLog("等待一段时间重新开始");
sleep(1000);
tt = time(NULL);
st = localtime(&tt);
tmpTime=st->;tm_hour*10000+st->;tm_min*100+st->;tm_sec;
if (tmpTime<NowTime) tmpTime+=240000;
if (tmpTime<=NowTime+m_WaitTime) continue;
WaitAHour=0;
};
system("rm -rf aa*");
WriteStrLog("清除系统日志完成!");
EXEC SQL WHENEVER SQLERROR DO sql_error("Connect error:");
EXEC SQL CONNECT :Ora_user IDENTIFIED BY :Ora_pwd;
sprintf(strTmp,"Connected to ORACLE as user: %s",Ora_user);
EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle error:");
EXEC SQL
SELECT count(*) into :count_del FROM bbs where bbs_code='371';
sprintf(strTmp,"\n bbs create time is:%d",count_del);
EXEC SQL COMMIT WORK RELEASE;
WaitAHour=1;
}
}
void WriteStrLog(char *iStr)
{
FILE *fp;
char fname[256],oStr[2048];
time_t tt = time(NULL);
struct tm* st = localtime(&tt);
sprintf(fname,"Watcher%02d%02d%02d.txt",
st->;tm_year+1900,st->;tm_mon+1,st->;tm_mday);
if ((fp = fopen (fname, "a")) == NULL) {
perror("Can not open LOG file!\n");
return;
};
sprintf(oStr,"[%02d:%02d:%02d]:%s\n",
st->;tm_hour,st->;tm_min,st->;tm_sec,iStr);
fputs(oStr,fp);
fclose(fp);
}
void sql_error(msg)
char *msg;
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
WriteStrLog(msg);
WriteStrLog(sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(EXIT_FAILURE);
} |
|