kakts-log

programming について調べたことを整理していきます

2023-01-01から1年間の記事一覧

google/wireでDIする際のgenerics対応について

Go

概要 この記事はQiita Advent Calendar 2023 Go言語の第十七日の記事です。 qiita.com google/wire で genericsに対応させる方法をまとめる google/wireについて github.com google/wireとは、GoでのDependency Injection用のコード生成ツールとなります。 w…

C: Pthreadによるスレッド作成とデタッチ

概要 CにおいてPthread(POSIX Thread library)ライブラリを使い、pthread_create()によりスレッドの作成をした後、別のスレッドからpthread_join()を実行し、作成したスレッドの終了を待ち、終了状態を得ることが可能です。 場合によっては、作成したスレッ…

stdioバッファの方式について

c

概要 fork()による子プロセスを作成するプログラムにおいて、printfなどのstdioライブラリの関数を実行した場合、標準出力が端末とファイルの場合で出力結果が異なる場合があります。 この挙動について整理します。 (参考: LINUXプログラミングインタフェー…

C: シグナルハンドラ内で非リエントラントな関数を扱った際の挙動

c

概要 Cにおいて、シグナルハンドラ関数内で非リエントラントな関数を実行した際に意図しない挙動が生じる問題についてかんたんに整理します。 リエントラント: Reentrant 再入可能 - マルチスレッド安全なもの 非リエントラント: Non-Reentrant 再入不可 - …

inotify_add_watch()によるファイル・ディレクトリ変更検知イベントを受信した際の挙動について

概要 linuxシステムコールでのinotify_add_watch(),によるファイル、ディレクトリの変更検知を行った際の挙動を整理する。 監視対象として特定のディレクトリを指定した場合、変更イベントの内容を保持するinotify_event構造体のname とlenにそれぞれ変更が…

Golangでファイル監視を行う

Go

概要 Goでファイル監視の方法についての記事です。 Goの標準パッケージではファイル監視の機能は提供されていないが、 github.com/fsnotify/fsnotify を使ったファイル監視のやり方をまとめます。 fsnotifyについて github.com/fsnotify/fsnotify 各プラット…

os.Exit()とdeferされた関数について

概要 os.Exit()を実行した際、プログラムが即座に終了するため、defer された関数が呼ばれない。 これについて整理します。 os.Exit() ドキュメントを確認すると、defer された関数が呼ばれないことも明記されている Exit causes the current program to exi…

JavaScript Primer改訂第2版の内容レビューに参加しました。

先月出版された「JavaScript Primer 改訂2版 迷わないための入門書」の内容レビューに関わらせていただきました。 先日出版社の方から、完成した書籍をご恵贈いただきました。ありがとうございます。 www.kadokawa.co.jp JavaScript Primer 改訂2版 迷わない…

RPMのgpgkeyの確認方法

概要 yumでのpackage installでPublic keyに関するエラーが出た際に、RPMのgpgkeyの確認方法が気になったのでまとめてみた gpgkeyの確認方法 インスタンス内でインストールされているyum package用のgpgkeyの確認は下記方法でできる rpm -q gpg-pubkey --qf …