📄 read_config_file.c
字号:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <unistd.h>
#include "control_db.h"
long read_conf(FILE *f);
void change_sign(FILE *f,long position);
void start_database();
void load_database();
char read_word[7][100]={0};
int read_config_file()
{
FILE *f=fopen("pos.cfg","r+");
char sys[7][100]={"dbname","dbuser","dbpass","isfirst","dmpfile","dmpuser","dmppass"};
long position=0;
int i=0;
int result=0;
char temp[100]={0};
char *strp=NULL;
if(f == NULL)
{
printf("open file fail!\n");
}
else
{
printf("open file scuess!\n");
}
position=read_conf(f);
for (i=0;i<3 ;i++ )
{
strp=strstr(read_word[i],"=");
strcpy(read_word[i],strp+1);
}
connect_db(read_word[1],read_word[2]);
if(position != 0)
{
for (i=4;i<7 ;i++ )
{
strp=strstr(read_word[i],"=");
strcpy(read_word[i],strp+1);
}
change_sign(f,position);
del_table_sq_constraint();
result=1;
/*
sprintf(temp,"imp %s/%s file=%s",read_word[1],read_word[2],read_word[4]);*/
/* system("imp pos/pos file=pos.dmp");*/
}
if(fclose(f) == EOF)
{
printf("close file fail!\n");
}
else
{
printf("close file scuess!\n");
}
return result;
}
long read_conf(FILE *f)
{
char buffer[100]={0};
char *place=NULL,temp[30]={0};
long position=0;
int i=0,j=0,len=0;
do
{
if(fgets(buffer,100,f) == NULL)
{
break;
}
else
{
if(buffer[0] == '#')
{
continue;
}
else
{
place=strstr(buffer,"\n");
len=place-buffer+1;
for(i=0;i<len-2;i++)
{
temp[i]=buffer[i];
}
strcpy(read_word[j++],temp);
if(strcmp(temp,"isfirst=yes") == 0)
{
position=ftell(f);
}
memset(temp,0,30);
}
}
}
while (1);
return position;
}
void change_sign(FILE *f,long position)
{
int result;
char temp[100]={0};
result=fseek(f,position,SEEK_SET);
result=fseek(f,-5,SEEK_CUR);
if(result)
{
perror( "Fseek failed\n" );
exit(0);
}
else
{
fputs( "no \n", f );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -