kakts-log

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

c

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

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

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

c

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

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

c

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

【独習アセンブラ 4.5デバッガによるトレース】apple silicon macのローカルでgdbの代わりにlldbを使ったトレースの実行方法

概要 「独習アセンブラ」を読んでアセンブラを学んでいて、apple silicon(arm)のmacのローカル環境でコード書いてデバッグしています。 独習アセンブラ 新版作者:大崎 博之翔泳社Amazon 4.5「デバッガによるトレース」 で、gdbを使ってcのソースコードをコン…

C言語 crypt()を使ったソースコンパイル時に undefined reference to `crypt' が出たときの対処法

概要 Linuxプログラミングインターフェース の8.5章 「パスワードの暗号化とユーザ認証」のサンプルコードをコンパイルしたときにエラーがでて躓いたので 対処法をメモする Linuxプログラミングインタフェース作者:Michael KerriskオライリージャパンAmazon …