百日半狂乱

Shut the fuck up and write some code!!

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

Cのエラーメッセージ出力に関数名や行番号を付加する

二十五日半狂乱、5日目(の分)の記事 C言語における関数のエラーハンドリングには戻り値およびerrnoを使うが、自分が読んだ文法書などのサンプルコードではエラーが起こった場合の処理が、大体がperror("fopen"); exit(1);のような感じのもので、まぁ小さいサ…

シェル変数のデフォルト値を設定する、未初期化時にエラーメッセージを出力してスクリプトを強制終了する

二十五日半狂乱4日目(の分)の記事 前回引用したkilltreeスクリプトの中に以下のようなコードがあった. local _sig=${2:-TERM} この${2:-TERM}は、変数展開されたタイミングで、$2に値が設定されていない場合にTERMを出力する. すなわち、結果的に$2が空だ…

SIGSTOPで停止したプロセスにSIGTERMを送ってもプロセスが死なない?

二十五日半狂乱3日目の記事 もはや、Advent Calendarでもなんでもなくなっているけど、そんな悲しい現実はさておいて. 前回の話がstackoverflowですでに議論され尽くされていて、解答の一つに自分のスクリプト似た構造のシェルスクリプトがあった. #!/bin…

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェルスクリプト

二十五日半狂乱、2日目の記事. 実行中のプロセスをkillしたいが、対象のプロセスをkillすると子プロセスがゾンビ化しちゃうからプロセスツリーを丸ごとkillしたくなった. どうせならkillコマンドっぽくプロセスIDで指定して、指定したプロセスをrootとして…

アウトプットを続けるきっかけとしてのAdvent Calendar

二十五日半狂乱、1日目の記事. 技術系Advent Calendar なにやら技術系Advent Calendarなるものが、盛り上がっているらしい. 1日(もとい2日)出遅れているけど今日からひっそり流行に乗ってみようと思う*1. と言っても、個人的にテーマは決めずに書きたいこ…

VirtualBoxのゲストOS(Linux)にホストOS(Windows)のDropboxをマウントする

方法 Virtualboxの[設定]→[共有フォルダー]でホストOSのDropboxを追加 設定したOSで以下を行う. $ mkdir /mnt/Dropbox $ ln -s /mnt/Dropbox ~/Dropbox $ sudo vi /etc/fstab dropbox /mnt/Dropbox vboxsf defaults,uid=1000,gid=1000,dmask=0077,fmask=007…

awkで合計とか平均とか算出する、ついでにgnuplotでグラフ化してみる

例えばイベントの実行時間を記録したログファイルから、個々のイベントの平均実行時間を算出したいとする. 例えば以下のようなawkを使って統計を取ることができる. ログファイルは以下のような感じのものを想定. #event exec_time foo 10 hoge 8.431 fuga…

bashのタブ補完で余分なスペースが入るようになった場合の対処

ある時を境に、 cp /et [Tab] ↓ cp /etc/ となっていたはずのbashのタブ補完が、 cp /et [Tab] ↓ cp /etc<space> となるようになってしまった場合、 rm /etc/bash_completion.d/acroread.sh とすれば元に戻ったという話. 同様の症状を訴えている人:参考1,参考2</space>

Ubuntu12.04のフリーズバグとlinuxカーネルのバージョンアップ

Ubuntu13.04出たし、かなり古い話題だけど、コマンド一発でカーネルバージョンアップができたのでメモ. Ubuntu12.04でカーネルのバージョンが 3.2.0-40-generic-paeあたりだった場合、 特にブラウザ開いて動画視聴している最中に何の前触れもなくフリーズす…

CとRubyの代入文を比較してみた

「コーディングを支える技術」を読んだ. コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2013/04/24メディア: 単行本(ソフトカバー)この商品を含むブログ (17件) …