地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2018-12-01から1ヶ月間の記事一覧

C言語 排他ロックする方法(mutex)

マルチスレッドプログラミングでスレッド間で共有データにアクセスするときに、 mutexを用いて、排他ロックを行うことがあります。 スレッドの同期には,pthread_joinによる合流の他に、ロックという方法があり今回は そちらを利用したスレッドの待ち合わせの…

vim script

vim scriptを始めてみようと思った。 色々言われているが一生使われていきそうな言語。 ゴリゴリ書く気は無いけどやり始めると大分書いちゃいそうで怖い。。。 変数について " 変数の定義、代入 let 変数名 = 式 " 変数の破棄 unlet 変数名 = 式 ex) let sam…

【Linux】linux 削除したファイルを復活させることができるかもしれない話

かもしれない

シグナルについて

シグナルとは シグナルは、UNIXやLinuxで使用されるプロセス間通信の一つです。 プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シ…

【vim】vimでHTMLのタグ補完 (NeoBundle)

背景 最近純粋なvimでは飽きたらずついにプラグインに手を出してしまいました。 そこで今回はHTMLでタグ補完を行える「emmet-vim」をご紹介 対象 Mac (macOS mojave) NeoBundleって何? NeobundleはShougoさんによって作られた、vimプラグインのパッケージマ…

C言語でシングルトンを実装

C言語でシングルトン(再入不可能な関数)を実装する方法 static 変数をフラグに使う 最も単純な方法。 次の関数は static 変数をフラグに使って再入を防いでいます。 void once(void) { static int entered = 0; if (entered == 1) { return; } entered = 1; …

Macのbrewコマンドリファレンス

概要 mac用のパッケージマネージャーであるHomebrewに関するコマンドのまとめです。 個人的に良く使うコマンドをまとめました。 所謂自分用メモ 用語 homebrew ⇒ パッケージ管理システム brew ⇒ make する Fomula ⇒ パッケージそのもの Keg ⇒ Formula のイン…

memccpy(3) で文字列をコピーする

memccpy(3)というシステム関数をご存知でしょうか? memcpyではなくmemccpyです。 こちらの関数は4.3 BSD で追加された関数ということがわかりました。 glibc に入っているので Linux でも使えます。 manを確認。 memccpy() は次のような関数です。 書式 voi…