主程序main的流程写法,建议如下,模块化,且易读
main
ctrl+c信号退出
模块1加载
模块2加载
....
while(1){
sleep
}
样式:
static volatile int keepRunning = 1;
//中断函数
void sig_handler(int sig)
{
if (sig == SIGINT) //中断退出
{
keepRunning = 0;
printf("\nwillis %s-> %s(%d)---keepRunning=%d \n", __FILE__, __FUNCTION__, __LINE__, keepRunning);
}
}
void wait_exit()
{
/* Wait until user press "q" to quit. */
for (;;)
{
char option[10];
puts("Press 'q' to quit");
if (fgets(option, sizeof(option), stdin) == NULL)
{
puts("EOF while reading stdin, will quit now..");
break;
}
if (option[0] == 'q')
break;
}
}
//主程序
int main(int argc, char **argv)
{
// 不要忘记在主线程中注册这个信号!!!
signal(SIGINT, sig_handler);
//模块服务1加载
//模块服务2加载
int num = 1;
if (argc < 2)
{
}
else
{
num = atoi(argv[1]);
}
while (1 == keepRunning)
{
sleep(1);
}
}