注意: 元の投稿者は、質問を閉じるように要求しています。コメントを参照してください。
基本的に CIN.ignore() である「Press any key to continue」をトリガーして C コンソール プログラムが終了すると、他の CMD ウィンドウが停止してコンソール入力に応答します。
これは、プログラムが CMD ではなくエクスプローラ ウィンドウから実行された場合に発生します。プログラムが CMD で起動すると、正常に終了し、他のコンソール ウィンドウは表示されません。
cin.clear と getline を試してみましたが、うまくいきませんでした。
何か案は?
pthread_t sthread;
void *ret;
start=true;
if (pthread_create(&sthread, NULL, &sbsb, (void*)listeningSocket)){
cout << "[ERROR] unable to create thread for Server"<< endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
WSACleanup();
return -1;
}
cout<<"[SOCKET] Started listening on "<<port<<endl;
cin.ignore();
start=false;
cout<<"[END] Exiting"<<endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
pthread_join(sthread,&ret);
while (running_threads > 0)usleep(1);
WSACleanup();
cout<<"[END] Bye SB"<<endl;
return 0;