2017-08-13 15 views
0

libwebsocketsを使用してクライアントからサーバーにwebsocketを開くcプログラムがあります。ただし、ネットワークがダウンすることがあります。そのような場合、10回接続しようとするロジックを書きましたが、失敗した場合はアプリケーションを終了する必要があります。ロジックは期待どおりに動作しますが、それは非常にきちんとしていないようで、私はそれを実行するより良い方法があると確信しています。私はこのロジックをより良くコード化する方法についてのコメントを感謝します。 exit(-1)正しい方法で終了しますか? stdlib.hからwebsocket接続を取得できない場合、アプリケーションを終了するロジック

//Try connect to websocket 10 times or else exit app 
for (int j =0; j < 10; j++) { 

     web_socket = lws_client_connect_via_info (&ccinfo); 

      //If you get a connection then exit the for loop 
      if(web_socket){ 
       break; 
      } 

     } 

    //If you tried 10 times web_socket will be NULL so exit the application 
     if(!web_socket) { 
      exit(-1); 
     } 
+1

'exit(EXIT_FAILURE);'は、より記述的で移植性があります。 –

答えて

0

exit最善のアプローチです。標準から

プロセスを正常に終了し、 プロセスを終了するための定期的なクリーンアップを実行します。

まず、atexitの呼び出しによって登録されたすべての関数は、登録の逆順で で実行されます。次に、すべてのストリームが閉じられ、 一時ファイルが削除され、最後に制御がホスト環境 に返されます。

status引数は、ホスト環境に返されます。

誰もがコードロジックがシンプルで分かりやすいと思います。

"時間の約97%という小さな効率を忘れるべきです。早すぎる最適化はすべての悪の根源です。" - Donald E. Knuth

関連する問題