我在c中运行以下代码(通过cmd控制台):
void main(int argc , char* argv[])
{
if (STRINGS_ARE_EQUAL(argv[1],"server")){
printf("\n\n\n\n\n\t\t\tSERVER\n\n\n");
MainServer(atoi(argv[3]),argv[2]);
}
else if (STRINGS_ARE_EQUAL(argv[1],"client")){
printf("\n\n\n\n\n\t\t\tClient\n\n\n");
MainClient(atoi(argv[3]),argv[2],argv[4]);}
else{
printf("Invalid working state,exiting\n");
exit(1);
}
}
调用MainServer函数并完成命令控制台重置时 - 您可以输入另一个命令行并启动另一个程序。 当调用MainClient函数并完成运行时,命令控制台会被卡住"卡住" (见图): Screen shot
你甚至无法打字。
当通过visual studio运行时,它工作正常,函数返回main主要返回并且控制台关闭。
我甚至尝试在Main的末尾使用exit(1)
函数,但它再次在visual studio中工作,但是当从开发人员命令行运行时控制台被卡住了。