私はチャットルームのように機能し、この質問に遭遇したTCPサーバーを作成しています。親が子を殺すように通知されたときに、リーパー関数に追加のパラメータをどのようにして絞り込むか(c)?
ユーザーが接続すると、ユーザーにサービスするための子プロセスが作成されます。
ユーザーがログインすると、私は、テキストファイルにonline.txt
を自分のユーザー名を保存する。しかし、ユーザーがログアウトすると、私はonline.txt
(PROBLEM)からユーザーを削除する必要があり、親をそしてsignals
reaper()
をして子供を殺します。
私の質問は以下のとおりです。
Q1:私は死神に追加情報に絞ることができますどのように、それはまたonline.txt
からユーザーを削除することができるように(例えば、ユーザがログインするために使用したユーザー名など)?それとももっと良い方法がありますか?
Q2:sig
のreaper()
は?から値を取得しますか? Reaperにパラメータを追加できますか?
Q3:login.txtのプライマリキーとして子供のpidを使用できますか?もしそうなら、どうすれば親から呼び出されるreaper()
の間に子供のpidを取得できますか?
刈り取りは、次のようになります。
void reaper(int sig)//where does sig come from?
{
int status;
while (waitpid(-1, &status, WNOHANG) >= 0)
;
}
親によって使用される信号は次のようになります。
(void) signal(SIGCHLD, reaper);//how can I add more parameters?
は、私は一度に3つの質問をすることはあまりないことを願う、事前にありがとう貪欲。
質問のANYについての洞察は非常に高く評価されます。
親は刈り取り器で子供を殺すように指示されています...時には、このような質問を入力している間に、邪魔をしていないと気づいていない傍観者が、そして、あなたに何が起こり、警察に電話するときにこれをどう説明するのですか? – Secure
私はすぐにこのフォーラムから禁止されると思います。 –