シグナルハンドラにprintf()を書いてはいけない話の余談

シグナルハンドラにprintf()を書いてはいけない - Qiita
https://qiita.com/rarul/items/090920b850acc4b7e910
を書いての余談です。

● 書籍のアフィ宣伝
    

● Qiitaで思ったより伸びた
正直これほど反応が来るとは思っていなかった。確かに「シグナルハンドラなんて使うな」という一点を強調した記事にはしたが、反響を得たかったわけではなくて、初心者が生半可な知識でシグナルハンドラを書いてやらかす例をイヤというほど見てきたので、それを改善したいという思いで書いた。その結果、もう超えることはないだろうと思ってたフラッシュメモリ記事を1週間で上回ったんだから、世の中、ソフトの、ユーザランドの、アプリよりのほうが人口多いんだなぁと改めて思い知った。

● 経験でしか学べない
「賢者は歴史に学び愚者は経験に学ぶ」、歴史を引き継がなければ学べないので経験に頼るしかなくなる。self pipe trickもシグナルスレッド方式も、シグナルハンドラ実装のための定石だと説明した書籍なりネット記事なりがほとんど存在しない。そりゃこんな状況じゃ、痛い目見ないと注意しようとも思わないよね。痛い目見てる人そこそこいるようなのに、なんで歴史として学べるようにできないんだろうか。もはや日本語圏じゃそんなことできる人やお金はない、英語を必須にしていかなければいけないという言語の壁の問題?

● 他のシリーズ
fork()とexec()の間で余計なことするな、pthread_cancel()なんて茨の道だからやめとけ、プロセスのfork(),exec()とSIGCHLDを正しく使う、ポーリング/ビジーループするなselect(),epoll()を正しく使え、みたいな定石をちゃんと整備できないだろうか。システムプログラミング系の書籍では、機能を教えるけど、筋がいい・悪いまでは語ってくれない事が多い。「malloc()したらfree()しよう」「openしたらcloseしよう」みたいなレベルまでしか教育が及ばないのだろうか。

● その他
気が向いたら追記するかもしれない。とはいえ、Qiita記事のPVが増えたとはいえ、さすがにこの記事までたどり着いて読もうという人はほぼいないか。

このブログ記事について

このページは、らるるが2022年5月15日 04:57に書いたブログ記事です。

ひとつ前のブログ記事は「レイジレーサーあるある」です。

次のブログ記事は「「Linuxサウンド処理基盤 ALSAプログラミング入門」読んだ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0