6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["csignal"], "id-type": ["macro"]}, "sources": [{"id": "0ef0e6b5f538e8e72c236fdaceaa557fccaeb213 ", "source": "#include <csignal>\n#include <iostream>\n\ nvolatile std::sig_atomic_t flag = 0;\n\nvoid handler(int)\n{\n flag = 1;\n}\n\nint main()\n{\n std::signal(SIGINT, handler);\n\n std::cout << \"Press Ctrl+C (handled)\" << std::endl;\n while (!flag) {\n }\n\n // \u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059\n std::signal(SIGINT, SIG_DFL);\n\n std::cout << \"Press Ctrl+C again (default action)\" << std::endl;\n while (true ) {\n }\n}\n"}], "page_id": ["reference", "csignal", "sig_dfl"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["csignal"], "id-type": ["macro"]}, "sources": [{"id": "f76cdff263ed74e4b32a9c00c130b161091d84b9 ", "source": "#include <csignal>\n#include <iostream>\n#include <thread>\n#include <chrono>\n\ nvolatile std::sig_atomic_t flag = 0;\n\nvoid handler(int)\n{\n flag = 1;\n}\n\nint main()\n{\n std::signal(SIGINT, handler);\n\n std::cout << \"Press Ctrl+C (handled)\" << std::endl;\n while (!flag) {\n std::this_thread::sleep_for(std::chrono::milliseconds(100));\n }\n\n // \u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059\n std::signal(SIGINT, SIG_DFL);\n std::cout << \"Press Ctrl+C again (default action)\" << std::endl;\n for (;; ) {\n std::this_thread::sleep_for(std::chrono::milliseconds(100)); \n }\n}\n"}], "page_id": ["reference", "csignal", "sig_dfl"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
188188
189189 < p class ="text-right "> < small >
190190 最終更新日時(UTC):
191- < span itemprop ="datePublished " content ="2026-02-27T09:34:57 ">
192- 2026年02月27日 09時34分57秒
191+ < span itemprop ="datePublished " content ="2026-02-27T23:33:10 ">
192+ 2026年02月27日 23時33分10秒
193193 </ span >
194194 < br />
195195 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -220,8 +220,10 @@ <h2>概要</h2>
220220< p > < code > signal</ code > 関数に渡される引数として、シグナルハンドラをデフォルトに設定するマクロ。</ p >
221221< p > シグナル受信時に< code > signal</ code > 関数で< code > SIG_DFL</ code > が指定されている場合、そのシグナルに対する< a class ="cpprefjp-defined-word " data-desc ="処理系定義の動作。処理系によって事前に定めた動作をする " href ="../../implementation-compliance.html#dfn-implementation-defined-behavior "> 実装定義</ a > のデフォルト処理が実行される。</ p >
222222< h2 > 例</ h2 >
223- < p > < div class ="yata " id ="0ef0e6b5f538e8e72c236fdaceaa557fccaeb213 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> <csignal></ span > < span class ="cp "> </ span >
223+ < p > < div class ="yata " id ="f76cdff263ed74e4b32a9c00c130b161091d84b9 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> <csignal></ span > < span class ="cp "> </ span >
224224< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
225+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../thread.html "> <thread></ a > </ span > < span class ="cp "> </ span >
226+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../chrono.html "> <chrono></ a > </ span > < span class ="cp "> </ span >
225227
226228< span class ="k "> volatile</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="kt "> sig_atomic_t</ span > < span class ="n "> flag</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ;</ span >
227229
@@ -236,13 +238,14 @@ <h2>例</h2>
236238
237239 < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="s "> "Press Ctrl+C (handled)"</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
238240 < span class ="k "> while</ span > < span class ="p "> (</ span > < span class ="o "> !</ span > < span class ="n "> flag</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
241+ < span class ="n "> < a href ="../thread/this_thread/sleep_for.html "> std::this_thread::sleep_for</ a > </ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../chrono/duration_aliases.html "> std::chrono::milliseconds</ a > </ span > < span class ="p "> (</ span > < span class ="mi "> 100</ span > < span class ="p "> ));</ span >
239242 < span class ="p "> }</ span >
240243
241244 < span class ="c1 "> // デフォルトに戻す</ span >
242245 < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> signal</ span > < span class ="p "> (</ span > < span class ="n "> SIGINT</ span > < span class ="p "> ,</ span > < span class ="n "> SIG_DFL</ span > < span class ="p "> );</ span >
243-
244246 < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="s "> "Press Ctrl+C again (default action)"</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
245- < span class ="k "> while</ span > < span class ="p "> (</ span > < span class ="nb "> true</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
247+ < span class ="k "> for</ span > < span class ="p "> (;;)</ span > < span class ="p "> {</ span >
248+ < span class ="n "> < a href ="../thread/this_thread/sleep_for.html "> std::this_thread::sleep_for</ a > </ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../chrono/duration_aliases.html "> std::chrono::milliseconds</ a > </ span > < span class ="p "> (</ span > < span class ="mi "> 100</ span > < span class ="p "> ));</ span >
246249 < span class ="p "> }</ span >
247250< span class ="p "> }</ span >
248251</ code > </ pre > </ div >
0 commit comments