近頃版/another blog@hatena/Wiki/BBS
< 放置中 | Windowsプログラミング手習い中 >
今週前半の個人的トピックス:Windowsには「ディレクトリを開く」という概念がない。
opendir相当のなにかをしたいと思ったら、_find系のシステムコールかそのラッパーを使わなければならないのね。っていうか、システムコールがそこでワイルドカードを取っちゃうこととか、むしろワイルドカード指定がないとファイル一覧すら取れないとか、それってOS内での実装がどんなことになってるのかが気になる。ファイルパス区切り文字が'\'なせいでコード内にパスを書くときに'\\'とエスケープせなならんのもめどい。
なんだかんだでC / C++って実はUNIXべったりなのねえ、と気付いてみたわけでした。
業を煮やしたと思しきGnome、というかGlibではWindows 互換機能でopendir/readdir等を実装しているようですが。
kuma : opendir/readdir は C/C++ 標準には含まれないはずです。POSIXというかUNIXというかそちらの標準のブツです。
white : 文字列処理が苦手なC/C++で、ワイルドカード指定という文字列処理を強要するWindowsの(MS-DOSの?)作りはどうなのかなあ、と思うのですよ。で、不満の解決法が区切り文字に'/'を使っても良いとか、C#の@"\path\to\file"という記法みたいに泥縄的だとも聞きましたし。
white : 特に個人的に許し難いのはワイルドカードについてで、そんなマッチングはカーネル側ではなくてユーザー側でやらせるべきだろう、と。
white : ちなみに「べったり」ってのは主にパス区切り文字についての感想です、はい。