- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIがKILLされたら、Cで動的に確保したメモリは?)
C言語で動的に確保したメモリのCGIがKILLされたら
このQ&Aのポイント
- C言語でCGIを製作している際に、動的に確保したメモリ内容を標準出力に表示している場合、閲覧者からの受信停止が起きた場合の処理方法を知りたいです。
- APACHEのログを確認したところ、出力が最後まで行われず、30kbyte程度で収まっていることが分かりました。
- OS側での処理方法が最善であれば良いですが、それについても教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
UN*X系のOS(Linuxもそう)で、webサーバがApacheであれば、ブラウザ側で中断されると、CGIで起こされたプロセスにはSIGTERMが送られます。SIGTERMを受け取ったプロセスのデフォルトの処理は「強制終了」で、使っていたリソース(メモリとか、ファイルハンドルとか)は、OSによってシステムに回収され、後始末されます。 もちろん、SIGTERMを受けるシグナルハンドラを定義して、自前で終了処理を行ってもかまいません。
お礼
CGIの場合もFree()しなくても、大抵はOS側でやってくれるのですね。 ありがとうございました。