From ae081be17b6bd263d9e9d9e5183ccebd1fdd11c6 Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Sun, 15 Feb 2026 00:39:52 +0900 Subject: [PATCH 1/8] add new pages `sig_dfl`,`sig_err`,`sig_ign` --- reference/csignal.md | 6 ++--- reference/csignal/sig_dfl.md | 41 ++++++++++++++++++++++++++++++ reference/csignal/sig_err.md | 49 ++++++++++++++++++++++++++++++++++++ reference/csignal/sig_ign.md | 41 ++++++++++++++++++++++++++++++ 4 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 reference/csignal/sig_dfl.md create mode 100644 reference/csignal/sig_err.md create mode 100644 reference/csignal/sig_ign.md diff --git a/reference/csignal.md b/reference/csignal.md index e62085edb9..ac72aa55b1 100644 --- a/reference/csignal.md +++ b/reference/csignal.md @@ -16,9 +16,9 @@ | 名前 | 説明 | 対応バージョン | |------|------|----------------| -| `SIG_DFL` | デフォルト動作を指定する | | | -| `SIG_ERR` | `signal`関数が失敗したことを示す戻り値 | | -| `SIG_IGN` | シグナルを無視する | | +| [`SIG_DFL`](csignal/sig_dfl.md) | デフォルト動作を指定する | | | +| [`SIG_ERR`](csignal/sig_err.md) | `signal`関数が失敗したことを示す戻り値 | | +| [`SIG_IGN`](csignal/sig_ign.md) | シグナルを無視する | | ### シグナル番号を表すマクロ diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md new file mode 100644 index 0000000000..af141d5b59 --- /dev/null +++ b/reference/csignal/sig_dfl.md @@ -0,0 +1,41 @@ +# SIG_DFL +* csignal[meta header] +* macro[meta id-type] + +```cpp +#define SIG_DFL see below +``` + +## 概要 +`signal`関数に渡される引数として、シグナルに対するデフォルトの処理を指定するマクロ。 + +シグナル受信時に`signal`関数で`SIG_DFL`が指定されている場合、そのシグナルに対する実装定義のデフォルト処理が実行される。 + +## 例 +```cpp example +#include +#include + +int main() +{ + std::signal(SIGINT, SIG_DFL); + volatile std::sig_atomic_t flag = 0; + while (!flag) { + } + return 0; +} +``` + +### 出力 + +``` +Press Ctrl+C to send SIGINT signal +``` + +* SIG_DFL[color ff0000] +* std::signal[color ff0000] + +## 関連項目 +- [`signal`](/reference/csignal/signal.md) +- [`SIG_IGN`](/reference/csignal/sig_ign.md) +- [`SIG_ERR`](/reference/csignal/sig_err.md) diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md new file mode 100644 index 0000000000..03d0fe390e --- /dev/null +++ b/reference/csignal/sig_err.md @@ -0,0 +1,49 @@ +# SIG_ERR +* csignal[meta header] +* macro[meta id-type] + +```cpp +#define SIG_ERR see below +``` + +## 概要 +`signal`関数の戻り値で、信号ハンドラの設定に失敗したことを示す値。 + +`signal`関数が失敗した場合、この値が返される。 + +## 例 +```cpp example +#include +#include + +std::sig_atomic_t flag = 0; + +void signal_handler(int sig) +{ + flag = 1; +} + +int main() +{ + if (std::signal(SIGINT, signal_handler) == SIG_ERR) { + std::cerr << "Failed to set signal handler" << std::endl; + return 1; + } + std::cout << "Signal handler set successfully" << std::endl; + while (!flag) { + } + return 0; +} +``` + +### 出力例 + +``` +Signal handler set successfully +``` + +* SIG_ERR[color ff0000] +* std::signal[color ff0000] + +## 関連項目 +- [`signal`](/reference/csignal/signal.md) diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md new file mode 100644 index 0000000000..741f5a5110 --- /dev/null +++ b/reference/csignal/sig_ign.md @@ -0,0 +1,41 @@ +# SIG_IGN +* csignal[meta header] +* macro[meta id-type] + +```cpp +#define SIG_IGN see below +``` + +## 概要 +`signal`関数に渡される引数として、指定されたシグナルを無視させるマクロ。 + +シグナル受信時に`signal`関数で`SIG_IGN`が指定されている場合、そのシグナルは無視される。 + +## 例 +```cpp example +#include +#include + +int main() +{ + std::signal(SIGINT, SIG_IGN); + // Ctrl+Cを押してもプログラムは続行する + for (int i = 0; i < 10; ++i) { + std::cout << i << " "; + } + std::cout << std::endl; + return 0; +} +``` + +### 出力 + +``` +0 1 2 3 4 5 6 7 8 9 +``` + +* SIG_IGN[color ff0000] +* std::signal[color ff0000] + +## 関連項目 +- [`signal`](/reference/csignal/signal.md) From ca74359aff5bb433096b262a4601203378dfe8da Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Thu, 26 Feb 2026 18:11:07 +0900 Subject: [PATCH 2/8] modified: syntax highlight --- reference/csignal/sig_dfl.md | 5 ++--- reference/csignal/sig_err.md | 5 ++--- reference/csignal/sig_ign.md | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index af141d5b59..421eae196c 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -26,15 +26,14 @@ int main() } ``` +* SIG_DFL[color ff0000] + ### 出力 ``` Press Ctrl+C to send SIGINT signal ``` -* SIG_DFL[color ff0000] -* std::signal[color ff0000] - ## 関連項目 - [`signal`](/reference/csignal/signal.md) - [`SIG_IGN`](/reference/csignal/sig_ign.md) diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md index 03d0fe390e..62912be4cb 100644 --- a/reference/csignal/sig_err.md +++ b/reference/csignal/sig_err.md @@ -36,14 +36,13 @@ int main() } ``` +* SIG_ERR[color ff0000] + ### 出力例 ``` Signal handler set successfully ``` -* SIG_ERR[color ff0000] -* std::signal[color ff0000] - ## 関連項目 - [`signal`](/reference/csignal/signal.md) diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md index 741f5a5110..ad9fcb7370 100644 --- a/reference/csignal/sig_ign.md +++ b/reference/csignal/sig_ign.md @@ -28,14 +28,13 @@ int main() } ``` +* SIG_IGN[color ff0000] + ### 出力 ``` 0 1 2 3 4 5 6 7 8 9 ``` -* SIG_IGN[color ff0000] -* std::signal[color ff0000] - ## 関連項目 - [`signal`](/reference/csignal/signal.md) From 545b61474c3de5abcab9a851c34826ef0bb23d18 Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Thu, 26 Feb 2026 23:02:56 +0900 Subject: [PATCH 3/8] =?UTF-8?q?sig=5Fdfl=E3=81=AE=E8=AA=AC=E6=98=8E?= =?UTF-8?q?=E3=81=A8=E3=82=B3=E3=83=BC=E3=83=89=E3=82=B5=E3=83=B3=E3=83=97?= =?UTF-8?q?=E3=83=AB=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/csignal/sig_dfl.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index 421eae196c..6f2d241e41 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -7,7 +7,7 @@ ``` ## 概要 -`signal`関数に渡される引数として、シグナルに対するデフォルトの処理を指定するマクロ。 +`signal`関数に渡される引数として、シグナルハンドラをデフォルトに設定するマクロ。 シグナル受信時に`signal`関数で`SIG_DFL`が指定されている場合、そのシグナルに対する実装定義のデフォルト処理が実行される。 @@ -16,13 +16,21 @@ #include #include +void signal_handler(int) +{ + std::cout << "Custom handler\n"; +} + int main() { + // 一度カスタムハンドラを設定 + std::signal(SIGINT, signal_handler); + // その後デフォルト動作に戻す std::signal(SIGINT, SIG_DFL); - volatile std::sig_atomic_t flag = 0; - while (!flag) { + std::cout << "Press Ctrl+C\n"; + // ここで Ctrl+C を押すと、デフォルト動作 + while (true) { } - return 0; } ``` @@ -31,7 +39,7 @@ int main() ### 出力 ``` -Press Ctrl+C to send SIGINT signal +Press Ctrl+C ``` ## 関連項目 From c104f5139887ebaca62b691ce8a8d9c1ee42dc4c Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Fri, 27 Feb 2026 18:34:57 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=E3=81=94=E6=8C=87=E6=91=98=E9=A0=82?= =?UTF-8?q?=E3=81=84=E3=81=9F=E7=AE=87=E6=89=80=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/csignal.md | 2 +- reference/csignal/sig_dfl.md | 26 ++++++++++++++++---------- reference/csignal/sig_err.md | 5 +++-- reference/csignal/sig_ign.md | 5 ++++- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/reference/csignal.md b/reference/csignal.md index ac72aa55b1..da961487ef 100644 --- a/reference/csignal.md +++ b/reference/csignal.md @@ -16,7 +16,7 @@ | 名前 | 説明 | 対応バージョン | |------|------|----------------| -| [`SIG_DFL`](csignal/sig_dfl.md) | デフォルト動作を指定する | | | +| [`SIG_DFL`](csignal/sig_dfl.md) | デフォルト動作を指定する | | | [`SIG_ERR`](csignal/sig_err.md) | `signal`関数が失敗したことを示す戻り値 | | | [`SIG_IGN`](csignal/sig_ign.md) | シグナルを無視する | | diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index 6f2d241e41..9a00dac28e 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -16,33 +16,39 @@ #include #include -void signal_handler(int) +volatile std::sig_atomic_t flag = 0; + +void handler(int) { - std::cout << "Custom handler\n"; + flag = 1; } int main() { - // 一度カスタムハンドラを設定 - std::signal(SIGINT, signal_handler); - // その後デフォルト動作に戻す + std::signal(SIGINT, handler); + + std::cout << "Press Ctrl+C (handled)" << std::endl; + while (!flag) { + } + + // デフォルトに戻す std::signal(SIGINT, SIG_DFL); - std::cout << "Press Ctrl+C\n"; - // ここで Ctrl+C を押すと、デフォルト動作 + + std::cout << "Press Ctrl+C again (default action)" << std::endl; while (true) { } } ``` * SIG_DFL[color ff0000] +* std::signal[color ff0000] ### 出力 ``` -Press Ctrl+C +Press Ctrl+C (handled) +Press Ctrl+C again (default action) ``` ## 関連項目 - [`signal`](/reference/csignal/signal.md) -- [`SIG_IGN`](/reference/csignal/sig_ign.md) -- [`SIG_ERR`](/reference/csignal/sig_err.md) diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md index 62912be4cb..6b6c863930 100644 --- a/reference/csignal/sig_err.md +++ b/reference/csignal/sig_err.md @@ -7,7 +7,7 @@ ``` ## 概要 -`signal`関数の戻り値で、信号ハンドラの設定に失敗したことを示す値。 +`signal`関数の戻り値で、シグナルハンドラの設定に失敗したことを示す値。 `signal`関数が失敗した場合、この値が返される。 @@ -16,7 +16,7 @@ #include #include -std::sig_atomic_t flag = 0; +volatile std::sig_atomic_t flag = 0; void signal_handler(int sig) { @@ -37,6 +37,7 @@ int main() ``` * SIG_ERR[color ff0000] +* std::signal[color ff0000] ### 出力例 diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md index ad9fcb7370..52b123c25d 100644 --- a/reference/csignal/sig_ign.md +++ b/reference/csignal/sig_ign.md @@ -15,13 +15,15 @@ ```cpp example #include #include +#include int main() { std::signal(SIGINT, SIG_IGN); // Ctrl+Cを押してもプログラムは続行する for (int i = 0; i < 10; ++i) { - std::cout << i << " "; + std::cout << i << " " << std::flush; + std::this_thread::sleep_for(std::chrono::milliseconds(500)); } std::cout << std::endl; return 0; @@ -29,6 +31,7 @@ int main() ``` * SIG_IGN[color ff0000] +* std::signal[color ff0000] ### 出力 From e96f3f2982cc488aa0b944a71d6cfca4cc77933c Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Sat, 28 Feb 2026 08:33:10 +0900 Subject: [PATCH 5/8] modified: code examples --- reference/csignal/sig_dfl.md | 7 +++++-- reference/csignal/sig_err.md | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index 9a00dac28e..932c642e16 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -15,6 +15,8 @@ ```cpp example #include #include +#include +#include volatile std::sig_atomic_t flag = 0; @@ -29,13 +31,14 @@ int main() std::cout << "Press Ctrl+C (handled)" << std::endl; while (!flag) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); } // デフォルトに戻す std::signal(SIGINT, SIG_DFL); - std::cout << "Press Ctrl+C again (default action)" << std::endl; - while (true) { + for (;;) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); } } ``` diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md index 6b6c863930..972e4e4f60 100644 --- a/reference/csignal/sig_err.md +++ b/reference/csignal/sig_err.md @@ -15,6 +15,8 @@ ```cpp example #include #include +#include +#include volatile std::sig_atomic_t flag = 0; @@ -31,6 +33,7 @@ int main() } std::cout << "Signal handler set successfully" << std::endl; while (!flag) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); } return 0; } From e1cf954eb21c1344ba2ab3d0d89cad9f4e95bda3 Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Sun, 1 Mar 2026 12:38:44 +0900 Subject: [PATCH 6/8] =?UTF-8?q?`std::signal`=E3=81=B8=E3=81=AE=E3=83=AA?= =?UTF-8?q?=E3=83=B3=E3=82=AF=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=81=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=88=E3=83=A9=E3=82=A4=E3=83=96?= =?UTF-8?q?=E3=83=A9=E3=83=AA=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/csignal/sig_dfl.md | 2 +- reference/csignal/sig_err.md | 2 +- reference/csignal/sig_ign.md | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index 932c642e16..e72f14246a 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -44,7 +44,7 @@ int main() ``` * SIG_DFL[color ff0000] -* std::signal[color ff0000] +* std::signal[link /reference/csignal/signal.md] ### 出力 diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md index 972e4e4f60..ec33643f02 100644 --- a/reference/csignal/sig_err.md +++ b/reference/csignal/sig_err.md @@ -40,7 +40,7 @@ int main() ``` * SIG_ERR[color ff0000] -* std::signal[color ff0000] +* std::signal[link /reference/csignal/signal.md] ### 出力例 diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md index 52b123c25d..2d950eb974 100644 --- a/reference/csignal/sig_ign.md +++ b/reference/csignal/sig_ign.md @@ -15,7 +15,8 @@ ```cpp example #include #include -#include +#include +#include int main() { @@ -31,7 +32,7 @@ int main() ``` * SIG_IGN[color ff0000] -* std::signal[color ff0000] +* std::signal[link /reference/csignal/signal.md] ### 出力 From a9ee7268a957d6e7f3b32518806ebba2662f2078 Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Sun, 1 Mar 2026 12:55:51 +0900 Subject: [PATCH 7/8] fixed: delete space --- reference/csignal/sig_ign.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md index 2d950eb974..13f61da993 100644 --- a/reference/csignal/sig_ign.md +++ b/reference/csignal/sig_ign.md @@ -15,7 +15,7 @@ ```cpp example #include #include -#include +#include #include int main() From 5263723210fed68f1951f7d5b110696e299bc7ee Mon Sep 17 00:00:00 2001 From: K10-K10 Date: Sun, 1 Mar 2026 14:22:09 +0900 Subject: [PATCH 8/8] deleted: Extra lines --- reference/csignal/sig_dfl.md | 1 - reference/csignal/sig_err.md | 1 - reference/csignal/sig_ign.md | 1 - 3 files changed, 3 deletions(-) diff --git a/reference/csignal/sig_dfl.md b/reference/csignal/sig_dfl.md index e72f14246a..dce1c15dfe 100644 --- a/reference/csignal/sig_dfl.md +++ b/reference/csignal/sig_dfl.md @@ -42,7 +42,6 @@ int main() } } ``` - * SIG_DFL[color ff0000] * std::signal[link /reference/csignal/signal.md] diff --git a/reference/csignal/sig_err.md b/reference/csignal/sig_err.md index ec33643f02..49f17b00c7 100644 --- a/reference/csignal/sig_err.md +++ b/reference/csignal/sig_err.md @@ -38,7 +38,6 @@ int main() return 0; } ``` - * SIG_ERR[color ff0000] * std::signal[link /reference/csignal/signal.md] diff --git a/reference/csignal/sig_ign.md b/reference/csignal/sig_ign.md index 13f61da993..9d2d5e112c 100644 --- a/reference/csignal/sig_ign.md +++ b/reference/csignal/sig_ign.md @@ -30,7 +30,6 @@ int main() return 0; } ``` - * SIG_IGN[color ff0000] * std::signal[link /reference/csignal/signal.md]