システムの内部スリープ機能に従って、その実行プロセスを知ることによって、あなたはalarm()関数、pause()関数とsigaction()関数を使うことができます。実現しました。
関数のパラメータと戻り値
追加のテーブルマークダウン構文:
構造体sigaction {void(* sa_handler)(int); void(sa_sigaction)(int、siginfo_t、void *); sigset_t sa_mask; int sa_flags; void(* sa_restorer)(void);}シグナルハンドラはvoid(sa_handler)を使用できます。 (int)またはvoid(* sa_sigaction)(int、siginfo_t、void)。どちらを使用するかは、sa_flagsでSA_SIGINFOビットが設定されているかどうかによって異なります。設定されている場合は、void(* sa_sigaction)(int、siginfo_t、void *)を使用してください。 )(int)、シグナルの値は現時点でハンドラにのみ送信できます。 Sa_handlerこのパラメータは、新しいシグナル処理関数を表すsignal()のパラメータハンドラと同じですが、それ以外の意味についてはsignal()を参照してください。 sa_maskは、sa_maskで指定されたシグナルセットを、このシグナルの処理中に一時的に保留にするように設定するために使用されます。 Sa_restorerこのパラメータは使用されていません。 Sa_flagsは、信号処理に関連する他の操作を設定するために使用されます。 Sa_flagsは他のフラグを設定することもできます。SA_RESETHAND:シグナルハンドラが呼び出されたとき、シグナルハンドラをデフォルト値にリセットします。SIG_DFL SA_RESTART:シグナルがプロセスのシステムコールを中断すると、システムは自動的にシステムコールSA_NODEFERを開始します。一般的に、シグナルハンドラが実行されているとき、カーネルは与えられたシグナルをブロックします。ただし、SA_NODEFERフラグが設定されていると、シグナルハンドラが実行されているときにカーネルはシグナルをブロックしません。 1)main関数がmysleep関数を呼び出します。 mysleep関数は、SIGALRMシグナル用のハンドラー関数myhandlerを登録するためにsigactionを呼び出します。ここでのmyhandler関数は何もしませんが、SIGALRMシグナルのデフォルトの処理はプロセスを終了することであるため、それを減らすことはできません。 2)アラームを設定するためにalarm(timeout)を呼び出します。 3)pauseを呼び出して待つと、カーネルは別のプロセスに切り替わります。 4)タイムアウト秒後に、アラームが期限切れになり、カーネルがプロセスにSIGALRMを送信します。 5)プロセスのユーザー状態がカーネル状態から戻る前に、保留シグナルが処理され、SIGALRMシグナルが検出され、処理機能はmyhandlerです。 6)ユーザーモードに切り替えてmyhandler機能を実行するmyhandler機能に入ると自動的にSIGALRM信号がマスクされ、myhandler機能から戻ると自動的にSIGALRM信号がマスク解除されます。その後、システムコールsigreturnを自動的に実行して再度カーネルに入り、実行状態を継続するためにユーザ状態のメイン制御フローに戻ります。つまり、メイン関数はmysleep関数を呼び出します。
Windowsオペレーティングシステムの場合、管理者パスワードを忘れても、それはまだかなり良い解決策です。 これを行う最も簡単な方法の1つは、この問題を完全に解決するために、コンピュータストア、古い コマンドの概要 シャットダウン、電源オフ、再起動、停止、initのシャットダウン、おおよその使用方法。 /sbin /halt [-n] [-w] [-d] [-f] [-i] [ システムをインストールする最も簡単な方法は、システムインストールCDを見つけて、ゆっくりとステップバイステップでインストールすることです。シンプルはシンプルですが、ほとんどの人はLinuxインストール エフェクト達成される: 2つのサーバー:" 192.168.201.236"および" 192.168.201.237"達成する必要:サーバー& Win8のDocuments and Settingsショートカットを削除することはできません。解決策 Win7はどのようにハードディスクをフォーマットしますか? Win7のハードディスクはフォーマットできません。ソリューション Win7のどのブロードバンド接続エラー738を解決するには? Windows 7 64ビットUltimateシステムとwin 7 64ビットシステムのダウンロードとアドバンテージ分析 海賊に3つの金貨を比類のないようにさせる方法海賊に比類のない3つの金貨をレイダーズにさせる方法 方法は、あなたがスリープ機能を設定する場合は、 新しいシステムがwin10の友達を設置し、あなたは彼らがあなたが眠る次の時間を覚ますことができます前に、パスワードを再入力する必要が
mysleep実装コード
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31#include