2012-03-07 12 views
0

私はクライアントサーバーアプリケーションを持っています。私は、サーバーを実行し
Cのファイル記述子を開く

int main (...) { 
FILE * fp; 
fp = fopen("serverLog.log","w"); 


//init variables 
//bind server 
//listen server on port 
    while(1) { 
    //some code 
    //accept 
    //some code 
    int check = pthread_create(&thread, NULL, handle_client,&ctx); 

    } 
fclose(fp); 
return EXIT_SUCCSESS; 
} 

、およびCTRL + Cを使用してサーバを閉じる:サーバーはC.に Serverは、この構造を持っています。 filedescriptor fdではどうなりますか?私はそれが開いたままであると思います。はいの場合は、どうすればいいですか? Thx

+1

この質問に似て:http://stackoverflow.com/questions/8175827/what-happens-if-i-dont-call-fclose-in-ac-program - プログラムを終了すると、そのリソース(メモリ、ファイル記述子)は、OSによって再利用されるべきです。 – birryree

答えて

5

いいえ、オペレーティングシステムによって閉じられます。プロセスが終了すると(きれいに強制するかどうかにかかわらず)、カーネルはすべてのぶら下がりハンドルをクリーンアップします。

関連する問題