2018-12-01から1ヶ月間の記事一覧
マルチスレッドプログラミングでスレッド間で共有データにアクセスするときに、 mutexを用いて、排他ロックを行うことがあります。 スレッドの同期には,pthread_joinによる合流の他に、ロックという方法があり今回は そちらを利用したスレッドの待ち合わせの…
vim scriptを始めてみようと思った。 色々言われているが一生使われていきそうな言語。 ゴリゴリ書く気は無いけどやり始めると大分書いちゃいそうで怖い。。。 変数について " 変数の定義、代入 let 変数名 = 式 " 変数の破棄 unlet 変数名 = 式 ex) let sam…
かもしれない
シグナルとは シグナルは、UNIXやLinuxで使用されるプロセス間通信の一つです。 プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シ…
背景 最近純粋なvimでは飽きたらずついにプラグインに手を出してしまいました。 そこで今回はHTMLでタグ補完を行える「emmet-vim」をご紹介 対象 Mac (macOS mojave) NeoBundleって何? NeobundleはShougoさんによって作られた、vimプラグインのパッケージマ…
C言語でシングルトン(再入不可能な関数)を実装する方法 static 変数をフラグに使う 最も単純な方法。 次の関数は static 変数をフラグに使って再入を防いでいます。 void once(void) { static int entered = 0; if (entered == 1) { return; } entered = 1; …
概要 mac用のパッケージマネージャーであるHomebrewに関するコマンドのまとめです。 個人的に良く使うコマンドをまとめました。 所謂自分用メモ 用語 homebrew ⇒ パッケージ管理システム brew ⇒ make する Fomula ⇒ パッケージそのもの Keg ⇒ Formula のイン…
memccpy(3)というシステム関数をご存知でしょうか? memcpyではなくmemccpyです。 こちらの関数は4.3 BSD で追加された関数ということがわかりました。 glibc に入っているので Linux でも使えます。 manを確認。 memccpy() は次のような関数です。 書式 voi…