为提高性能,改用c替换原本的flask
This commit is contained in:
58
c/main.c
Normal file
58
c/main.c
Normal file
@ -0,0 +1,58 @@
|
||||
#include "tem/ctl.h"
|
||||
#include "network/network.h"
|
||||
#include "tools/toml/toml.h"
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int get_config(toml_table_t **server,char *path)
|
||||
{
|
||||
FILE* fp;
|
||||
char errbuf[200];
|
||||
//打开配置文件,加载到缓存
|
||||
fp = fopen(path,"r");
|
||||
if(!fp)
|
||||
{
|
||||
perror("cannot parse\n");
|
||||
return 0;
|
||||
}
|
||||
toml_table_t *tem = toml_parse_file(fp,errbuf,sizeof(errbuf));
|
||||
tem = toml_table_in(tem,"app");
|
||||
*server = tem;
|
||||
fclose(fp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
toml_table_t* server;
|
||||
if(!get_config(&server,"config/config.toml"))
|
||||
perror("load config error");
|
||||
int port = (int)toml_int_in(server,"list_port").u.i;
|
||||
//加载配置文件,读取端口
|
||||
log_manager *logsmanager=(log_manager*)malloc(sizeof(log_manager));
|
||||
init_loger(logsmanager);
|
||||
|
||||
Ctl *teml = init_tem(logsmanager);
|
||||
//初始化终端对象
|
||||
int fifo[2];
|
||||
if(pipe(fifo)==-1)
|
||||
perror("ERROR ");
|
||||
netm *networkmanager = (netm*)malloc(sizeof(netm));
|
||||
init_networkmanager(networkmanager,fifo,logsmanager,port);
|
||||
//初始化网络管理器对象
|
||||
pthread_t network_id;
|
||||
pthread_create(&network_id,NULL,networkmanager->run_network,(void*)networkmanager);
|
||||
//启动网络监听与线程池,并加载插件
|
||||
teml->run(teml,fifo);
|
||||
//启动终端
|
||||
pthread_join(network_id,NULL);
|
||||
//等待网络管理器进程结束
|
||||
|
||||
free(teml);
|
||||
free(networkmanager);
|
||||
free(logsmanager);
|
||||
//释放内存
|
||||
return 1;
|
||||
}
|
Reference in New Issue
Block a user