⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hello.c

📁 linux环境下的应用程序
💻 C
字号:


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
#include <sqlite3.h>
#include <unistd.h>
#include <fcntl.h>

sqlite3 *db;
sqlite3 *db2;
char *zErrMsg = 0;
int rc;

char localip[16]="192.168.0.213";
char serverip[16]="192.168.0.212";
char lsport[6]="30000";
//char dtport[6]="30001"; //old version
char dtport1[6]="30002";
char dtport2[6]="30001";
char dtport3[6]="30003";
char dtport4[6]="30004";

int uartspd2=115200;
int uartdb2=8;
char uartpr2='N';
int uartstb2=1;
int uartspd1=57600;
int uartdb1=8;
char uartpr1='N';
int uartstb1=1;
int srunas1=4;

int TCPC_MAXCONNECT=65535;
char stordev[255]; 

int sqlite3_callback2(void *NotUsed, int argc, char **argv, char **azColName)
{
	//sql result
	/**/
	int i;
	int st=0;
	int ct=0;
	for(i=0; i<argc; i++)
	{
		printf("%s = %s , ", azColName[i], argv[i] ? argv[i] : "NULL");
		
		if(strcmp(azColName[i],"des")==0)
		{
			if(strcmp(argv[i] ? argv[i] : "NULL","localip")==0)st=3;
			else if(strcmp(argv[i] ? argv[i] : "NULL","serverip")==0)st=4;
			else if(strcmp(argv[i] ? argv[i] : "NULL","lsport")==0)st=5;
			else if(strcmp(argv[i] ? argv[i] : "NULL","dtport1")==0)st=16;//dtport 6 
			else if(strcmp(argv[i] ? argv[i] : "NULL","dtport2")==0)st=17;
			else if(strcmp(argv[i] ? argv[i] : "NULL","dtport3")==0)st=18;
			else if(strcmp(argv[i] ? argv[i] : "NULL","dtport4")==0)st=19;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartspd2")==0)st=7;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartdb2")==0)st=8;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartpr2")==0)st=9;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartstb2")==0)st=10;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartspd1")==0)st=11;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartdb1")==0)st=12;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartpr1")==0)st=13;
			else if(strcmp(argv[i] ? argv[i] : "NULL","uartstb1")==0)st=14;
			else if(strcmp(argv[i] ? argv[i] : "NULL","srunas1")==0)st=15;
		}
		else if(strcmp(azColName[i],"conftype")==0)
		{
			if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)ct=1;
			else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)ct=2;
			else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)ct=3;
		}
		else if(strcmp(azColName[i],"val1")==0)
		{
			switch(st)
			{
				case 3:
					
					break;
				case 4:
					
					break;
				case 5:
					
					break;
				case 6:
					
					break;
				case 7:
					//uartspd2
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartspd2=115200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartspd2=57600;
					else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)uartspd2=38400;
					else if(strcmp(argv[i] ? argv[i] : "NULL","4")==0)uartspd2=19200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","5")==0)uartspd2=9600;
					else if(strcmp(argv[i] ? argv[i] : "NULL","6")==0)uartspd2=4800;
					else if(strcmp(argv[i] ? argv[i] : "NULL","7")==0)uartspd2=2400;
					else if(strcmp(argv[i] ? argv[i] : "NULL","8")==0)uartspd2=1200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","9")==0)uartspd2=300;
					printf("uartspd2 : %d ,",uartspd2);
					break;
				case 8:
					//uartdb2
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartdb2=8;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartdb2=7;
					printf("uartdb2 : %d ,",uartdb2);
					break;
				case 9:
					//uartpr2
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartpr2='N';
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartpr2='O';
					else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)uartpr2='E';
					printf("uartpr2 : %c ,",uartpr2);
					break;
				case 10:
					//uartstb2
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartstb2=1;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartstb2=2;
					printf("uartstb2 : %d ,",uartstb2);
					break;
				case 11:
					//uartspd1
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartspd1=115200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartspd1=57600;
					else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)uartspd1=38400;
					else if(strcmp(argv[i] ? argv[i] : "NULL","4")==0)uartspd1=19200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","5")==0)uartspd1=9600;
					else if(strcmp(argv[i] ? argv[i] : "NULL","6")==0)uartspd1=4800;
					else if(strcmp(argv[i] ? argv[i] : "NULL","7")==0)uartspd1=2400;
					else if(strcmp(argv[i] ? argv[i] : "NULL","8")==0)uartspd1=1200;
					else if(strcmp(argv[i] ? argv[i] : "NULL","9")==0)uartspd1=300;
					printf("uartspd1 : %d ,",uartspd1);
					break;
				case 12:
					//uartdb1
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartdb1=8;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartdb1=7;
					printf("uartdb1 : %d ,",uartdb1);
					break;
				case 13:
					//uartpr1
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartpr1='N';
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartpr1='O';
					else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)uartpr1='E';
					printf("uartpr1 : %c ,",uartpr1);
					break;
				case 14:
					//uartstb1
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)uartstb1=1;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)uartstb1=2;
					printf("uartstb1 : %d ,",uartstb1);
					break;
				case 15:
					//srunas1
					if(strcmp(argv[i] ? argv[i] : "NULL","1")==0)srunas1=1;
					else if(strcmp(argv[i] ? argv[i] : "NULL","2")==0)srunas1=2;
					else if(strcmp(argv[i] ? argv[i] : "NULL","3")==0)srunas1=3;
					else if(strcmp(argv[i] ? argv[i] : "NULL","4")==0)srunas1=4;
					else if(strcmp(argv[i] ? argv[i] : "NULL","5")==0)srunas1=5;
					else if(strcmp(argv[i] ? argv[i] : "NULL","6")==0)srunas1=6;
					else if(strcmp(argv[i] ? argv[i] : "NULL","7")==0)srunas1=7;
					else if(strcmp(argv[i] ? argv[i] : "NULL","8")==0)srunas1=8;
					else if(strcmp(argv[i] ? argv[i] : "NULL","9")==0)srunas1=9;
					else if(strcmp(argv[i] ? argv[i] : "NULL","10")==0)srunas1=10;
					else if(strcmp(argv[i] ? argv[i] : "NULL","11")==0)srunas1=11;
					else if(strcmp(argv[i] ? argv[i] : "NULL","12")==0)srunas1=12;
					
					printf("srunas1 : %d ,",srunas1);
					break;
				default:
					printf("val1 unknown setting item. ,");
					break;
			}
		}
		else if(strcmp(azColName[i],"val2")==0)
		{
			switch(st)
			{
				case 3:
					//localip
					strcpy(localip,argv[i] ? argv[i] : "NULL");
					printf("localip : %s ,",localip);
					break;
				case 4:
					//serverip
					strcpy(serverip,argv[i] ? argv[i] : "NULL");
					printf("serverip : %s ,",serverip);
					break;
				case 5:
					//lsport
					strcpy(lsport,argv[i] ? argv[i] : "NULL");
					printf("lsport : %s ,",lsport);
					break;
				case 6:
					//dtport --old version
					//strcpy(dtport,argv[i] ? argv[i] : "NULL");
					//printf("dtport : %s ,",dtport);		
					break;
				case 7:
					
					break;
				case 8:
					
					break;
				case 9:
					
					break;
				case 10:
					
					break;
				case 11:
					
					break;
				case 12:
					
					break;
				case 13:
					
					break;
				case 14:
					
					break;
				case 15:
					
					break;
				case 16:
					//dtport1
					strcpy(dtport1,argv[i] ? argv[i] : "NULL");
					printf("dtport1 : %s ,",dtport1);	
					break;
				case 17:
					//dtport2
					strcpy(dtport2,argv[i] ? argv[i] : "NULL");
					printf("dtport2 : %s ,",dtport2);	
					break;
				case 18:
					//dtport3
					strcpy(dtport3,argv[i] ? argv[i] : "NULL");
					printf("dtport3 : %s ,",dtport3);	
					break;
				case 19:
					//dtport4
					strcpy(dtport4,argv[i] ? argv[i] : "NULL");
					printf("dtport4 : %s ,",dtport4);	
					break;
				
				default:
					printf("val2 unknown setting item. ,");
					break;
			}
		}
		else if(strcmp(azColName[i],"val3")==0)
		{
			
			st=0;
			ct=0;
		}

	}
	printf("\n");
	
	return 0;
}

int main(int argc, char **argv)
{
	//strings init
	stordev[0]='\0';
	//ipsetting[0]='\0';
	strcat(stordev,"/mnt/cfcard/");

	//init ipc shared memory map
	//ipcm_init("/mnt/cfcard/datasys/gdata.dt",0x1000000,NULL);

	//open database
	char *s0=malloc(255*sizeof(char));
	char *s1=malloc(255*sizeof(char));
	char *s2=malloc(255*sizeof(char));
	strcpy(s0,stordev);
	strcpy(s1,stordev);
	strcpy(s2,"");
	strcat(s0,"datasys/data.db");
	strcat(s1,"datasys/config.db");
	strcat(s2,"select * from sysconfig;");
	
	rc = sqlite3_open(s1, &db);
	if( rc )
	{
		fprintf(stderr, "can't open config.db: %s\n", sqlite3_errmsg(db));
		sqlite3_close(db);
		return (-1);
	}
	rc = sqlite3_open(s0, &db2);
	if( rc )
	{
		fprintf(stderr, "can't open data.db: %s\n", sqlite3_errmsg(db2));
		sqlite3_close(db2);
		return (-1);
	}

	//sql execute, save configurations to vars
	rc = sqlite3_exec(db, s2, sqlite3_callback2, 0, &zErrMsg);
	if( rc!=SQLITE_OK )
	{
		fprintf(stderr, "s2 SQL error: %s\n", zErrMsg);
	}
	
  sqlite3_close(db);
  
  //strcat(ipsetting,"eth0 ");
  //strcat(ipsetting,localip);
  
	if(execlp("ifconfig","ifconfig","eth0",localip,NULL)<0)
		perror("\nexeclp error.\n");
		
	sleep(1);
  
  return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -