1

現在、シグナルを使用してプログラムを書いていますが、次のような問題があります。

SIGSTOP/を送信せずに、実行中のプログラムの状態を停止/実行中に変更するにはどうすればよいSIGCONTですか?

私は、私が使用する必要があることを理解しています:

 void add_to_runqueue (struct task_struct * p)

void del_from_runqueue (struct task_struct * p)

しかし、現在実行中のプロセスの構造 task_struct を取得する方法は?

また:私がする必要があるのはそれだけです(これらの2つの関数を呼び出す)。

前もって感謝します!

4

1 に答える 1

2

これらの関数はカーネル関数、つまりOSの内部になります。プログラムを作成するときは、適切なシステムコールを実行する必要がありますkill

プログラムプロセスID(つまりその番号)がある場合は、次を使用できます。

kill(pid, SIGSTOP);

kill(pid, SIGCONT);

SIGTSTP自分が何をしているのかを理解していない限り、使用しないでください。

于 2011-06-07T09:02:38.240 に答える