Hatena::ブログ(Diary)

英語とプログラミング気まぐれ日記 このページをアンテナに追加 RSSフィード

2008-04-10

[] BSDls とか cat のソースコードを読みたい

ls とか、cat とかのソースを読んだことないのはプログラマとしてやばいらしいので読めるようになりたい(参考:lsコマンドのソース(FreeBSD版):濃縮還元オレンジニュース|gihyo.jp … 技術評論社)。GNU版は読みにくいみたいなので、BSD版をダウンロードして読んでみたいと思う。


早速、ダウンロードと思ったけど、ソースコードダウンロード方法が分からない…。ググってみると、どうやら BSDCVSリポジトリってとこからダウンロードできることが分かった。

まずは、空の .cvspass ファイルを作っておく

% touch .cvspass

次に、CVSROOT を設定して export する。.bash_profile に書いておくと便利。

% export CVSROOT=":pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs"

ログインして、カレントディレクトリlsソースコード一式をダウンロード(チェックアウトって呼ぶらしい)。

% cvs login
password: 適当なパスワードを設定する
% cvs co ls

パスワードcvs login に成功すると ~/.cvspass に記録されて、~/.cvspass を消さない限り有効らしい。もし消したければ、cvs logout を使う。(参考:no title

参考(Annonymous CVS

no title:日本語資料では1番分かり易かった

Page not found.

FreeBSD QandA 649:Anonymous CVS について

参考(BSDls を読んだ人の記録。参考になります。)

lsコマンドのソース - ボクノス

Linuxプログラミングで参考になるマニュアルのメモ。 - ボクノス

謎の(void)fprintf() - ボクノス

有用そうな3つのC言語リンク - ボクノス

ひらメソッドを読んでみた。 - ボクノス

FreeBSDのlsを読む -tオプションを追え!! - ボクノス

FreeBSDのlsを読む fts(3)でlsを作ってみよう〜。 - ボクノス

[] find で「permission denied」を消す方法

標準エラー出力を捨てる。

% (find / -name '*hoge*') 2> /dev/null | less

参考

findコマンドの使い方: UNIX/Linuxの部屋

[] whereis が便利

今までファイル検索には何でも 「find / -name '*hoge*'」 使えばいいやって思ってたけど、用途によってはもっと便利なコマンドがあるんだなと実感。忘れない内にメモしておく。


/usr/bin/ 以下の man ドキュメントが無い全てのプログラムを見つける
% whereis -m -u /usr/bin/*

lsソースコードがあるディレクトリに移動する
% cd `whereis -sq ls`

[] ヒアドキュメント中の関数呼び出し

できるんだ…。知らなかったのでメモ。

ヒアドキュメント中の関数呼び出し - Perl表技集via: bayashi.jp

以下引用。

print <<EOD;
タイトル:@{[get_title()]}
本文    :@{[get_contents()]}
EOD

sub get_title {
	return 'ある一日';
}

sub get_contents {
	return '今日も暑い';
}
Connection: close