Skip to main content

ログ取得ツール

を渡しますにより、printf

gccの日本語メッセージ。

hogehoge.c: 関数 `func' 内:
hogehoge.c:15: 警告: 引数 1 個の `arg' を渡しますにより、キャストなしでポインタから整数を作りました

funcという関数の呼び出しを書くときに1個目の引数の型が違ったので明示的にキャストされていないけど勝手にキャストしてポインタを整数にして渡しちゃったけど、渡された先で何が起ころうと知ったことじゃありません、という警告だ。 不自然とかそういう問題じゃないように思う。ずいぶん前からこうなってるんだけど、指摘しなきゃ誰も気づかないのかな。もしかしたら、おもしろいからそのままにしているだけかもしれないね。あるいは、makeの「入りますディレクトリ」が見えてるから、gcc側がおかしくても気にならないのかもしれない。 で、やはり疑問なのでgccのソースの中にあるja.poを見たら、確かにそうなるのもうなずけるなーと思った。というのは、passing arg %d of %s'を引数%d個の%s’を渡しますと訳すのは間違いじゃない(実際の意味は個数じゃないけど)。そして%s makes integer from pointer without a castを%sにより、キャストなしでポインタから整数を作りましたと訳すのも間違いじゃない。でもつながらない。 別に「〜により」にこだわることはなくて、passing arg %d of %s'は「%2$s’への%1$d番目の引数が原因です。」にして%s makes integer from pointer without a castは順序を変えて「キャストなしでポインタから整数を作りました。%s」とかにするのが自然かな。つなげると「キャストなしでポインタから整数を作りました。func'への1番目の引数が原因です。」になる。でも順序を変えたりすると文句を言われそうだし、printfの「%n$」なんて知らない人も多いからメンテナンス性が悪くなってしまう。今はソース上は文字列はすぐにprintf()に渡るからいいけど、そうならなくなったら「%n$」は使えなくなる。それに別の文脈で同じ文字列が使われて、そっちではpassing arg %d of %s’は「原因」じゃなかったりするかもしれない。 あとprintfを提供するライブラリ側で「%n$」に対応してなかったらどうするんだって話もある。簡易のlibcを使っている場合や、滅多に使わない機能なのでテストされてなかったりする環境も充分にありうる。 ちなみに、引数を1個スキップするだけなら「%*s」みたいに書ける。つまり、printf("%*s\n", 1, "test");だと「test\n」が出力される。 printfは奥深い。printf(3)のman pageだけ読んで使い方を理解できる人は少数派だろうな。

稼ぐ墓石

本日のひとこと。 「不惑」を迎えたIBMのメインフレーム–絶滅の予言もどこ吹く風(cnet.com)。「メインフレーム」という言葉は私の世代になじみがあるはずもなく、どことなく恐竜を思い起こさせる。

「メインフレームは死んだも同然だと言われるが、だとすると45億ドルを稼ぎ出す墓石ということになる」

関わり合いたいかと問われれば否だが、すごさを感じるんだよなぁ。もう少し早く生まれていたら何かしら関わっていたかもしれないし。ただ、現在のコンピュータ(という言い方も変だが、今自分が触れているPCなど)にメインフレーム由来の技術が意外とけっこうあるのかもしれなくて、そのへんは知りたいところだ。 今は全然ハッキリしてなくて、だからやはり恐竜(=人類の祖先ではない)を思わせるのだと思う。

難しい…

mozex(mozdev.org)をインストールしてtextareaの編集にエディタを起動することができるようになったが、エディタは今までgeditを使っていた。本当はxemacsを使いたい。なんでこんなハメになっていたかというと、mozexはUTF-8のテキストファイルで受け渡しをするのだが、xemacsでUTF-8のファイルを編集する方法が難しかった。以前調べた限りでは

(load-library "un-define")
(set-buffer-file-coding-system-for-read 'utf-8)

で読み込みができ、バッファを読み込み後に(set-buffer-file-coding-system 'utf-8)を実行すると良い(以前の関数名とは微妙に変わっていた)。要はこれをやればいいのだが、mozexのコマンドラインのクオートも面倒だし、結局は

#! /bin/sh

to_utf8="(progn (load-library \"un-define\")
(set-buffer-file-coding-system-for-read 'utf-8)
(add-hook 'text-mode-hook (function (lambda() (set-buffer-file-coding-system 'utf-8)))))"

#if /sbin/pidof gnuserv > /dev/null; then
  #exec gnuclient -eval "$to_utf8" $*
#else
  exec xemacs -eval "$to_utf8" $*
#fi

のようなスクリプトにしている。gnuclientで起動したいところだが、別に開いているxemacsで勝手に(add-hook 'text-mode-hook)なんてやったら迷惑…だよね。閉じるときに(remove-hook 'text-mode-hook ....)が走るようにすればいいのかもしれないけど。 おかげで起動が遅いのなんのって(笑)。まあちょっと込み入った話はxemacsで書いたほうがskk-azikも使えるので効率が良い。まあ、skkinputをazik(vector.co.jp)に対応させるのが一番素直だとは思うんだけどね。

ELFにID3は入るか?

…と、今日の仕事中にふと思った。ELFにダミーのセグメントを作ってID3のデータ(別に曲名とかじゃなくていいけど)を入れて、言わば「インプラント」することは可能だと思われた。 でもこれって意味ないよね(笑)。やったとして、実行バイナリやライブラリをインデックス化して検索するとかってするのかな。だから、どうやったらいいのかは全く調べてない。

久しぶりにラーメン

昨日今日と久しぶりにラーメンを連発した。 昨日は会社近くにできた店。街道沿いの場末のラーメン屋といった風情(実際は幹線道路にも近いが駅にも近い)。都会とは思えない。太麺ストレート。 今日は南武線が止まったので時間潰しがてら、昔よく行っていたラーメン屋へ。表にでかでかとラーメンショップと書きつつ「ラーメンギョウザ」と注文すると「支那そばと餃子ね」と言い直される店(メニューには支那そばと書いてある)だ。表の看板か店員を修正する必要がある。視聴者は混乱する。私はずっと表の看板に従っていた。細麺ストレート。 食い終わって駅に行くとちょうど復活したところだった。 この調子だと、明日は太麺カーブ(…というかちぢれ)かな。

メモ:mplayer、ffmpeg

ウェブ上の映像の保存についてのメモ。

 # mplayer -vo mpegpes -ao mpegpes URL
 # ffmpeg -sameq -i grab.mpg output.mpg

で、たぶん特に情報をロスせずに保存できると思う。mplayerは画面に出力しなければコマ落ちさせることはないみたいだ。ffmpegは-sameqでソースと同じクオリティになるらしい。本当かな。MPEG-PESというのはビデオカードでMPEGのデコードをするときのためのデータフォーマットで、mplayerはビデオカードに書く代わりにファイルに書き出してくれるらしい。普通のMPEGプレイヤーはMPEG-PESを入力にはできないみたいだけど、mplayerとffmpegは理解できるみたいだ。ffmpegで普通のMPEGに変換&そこそこの圧縮ができる。もちろん-sameqなどつけなければもっと小さくなる。 で、wmaファイルをMP3ファイルに変換するのもmplayerでできる。

 # mplayer -ao pcm input.wma -aofile temp.wav
 # lame temp.wav output.mp3
 # rm temp.wav

mplayerはなんでフィルタにならないんだ。…別にいいけど。 (追記) 2004-04-06 22:31 フィルタか…名前つきFIFO(「名前つきパイプ」だっけ? どっちでもいいや)でできないかな。ディスク容量が足りないときとかに。

X

「プロジェクトX」イラクで放送(yahoo.co.jp)。この番組にしたか…NHKもいいもん作るよな。

外務省は6日、レバノンの衛星放送局フューチャーTVに対し、NHKのドキュメンタリー番組「プロジェクトX」を提供すると発表した。日本の技術開発に対する中東諸国の関心の高まりを受けたもので、11日から毎週日曜、イラクを含む中東・北アフリカ諸国で放送される。

実は私はこの番組はたまにしか見てなかったんだよな。将来イラク人からこの話題を振られたって時のために見ておこうかな。再放送とかけっこうしてるよねえ。 (追記) 2004-04-06 19:50 なんだよ、今日9時15分から「みどりの窓口」をやるんじゃん。やるなNHK。外務省を巻き込んだ強烈なプロモーションが今年最高の視聴率を生むのは間違いない(笑) (追記) 2004-04-06 22:23 見た。日立+国鉄、やるなー。みどりの窓口と言えば、旅行に行くときに特急券+乗車券を頼んだのに、料金はちゃんと取ったくせに特急券しかくれなかったことがある。自動改札通れなくて買い直すハメに。おのれ! しかし番組としては良かったが、冒頭で国井が膳場さんと不倫旅行に行こうとしてたのはちょっと許せん(笑)。しかもよりによって八戸だと!?