ToDo:
をちょっと書いた。
https://github.com/shinh/test/blob/master/base_dir_name.c
glibc の POSIX 準拠な方の実装の挙動と同じように実装したけど、案外この二つめんどくさい関数だね…って思った。しんどい時に書いたから深く考えてなかったけど、もっと綺麗になる気がするなあ。
実行結果は glibc が
path base(g) base(p) base(my) dir dir(my) /usr/lib 0 lib 5 lib 5 lib 5 /usr 0 /usr 0 usr/lib 0 lib 4 lib 4 lib 4 usr 0 usr 0 /usr/ 0 5 usr 1 usr 1 / 0 / 0 //usr// 0 7 usr 2 usr 2 // 0 // 0 usr/ 0 4 usr 0 usr 0 . heap . heap usr 0 usr 0 usr 0 usr 0 . heap . heap . 0 . 0 . 0 . 0 . heap . heap .. 0 .. 0 .. 0 .. 0 . heap . heap / 0 1 / 0 / 0 / 0 / 0 // 0 2 / 1 / 1 // 0 // 0 0 0 . heap . heap . heap . heap //u//s// 0 8 s 5 s 5 //u 0 //u 0
で mac が
path base base(my) dir dir(my) /usr/lib 0 lib heap lib 5 /usr heap /usr 0 usr/lib 0 lib heap lib 4 usr heap usr 0 /usr/ 0 usr heap usr 1 / heap / 0 //usr// 0 usr heap usr 2 / heap // 0 usr/ 0 usr heap usr 0 . heap . heap usr 0 usr heap usr 0 . heap . heap . 0 . heap . 0 . heap . heap .. 0 .. heap .. 0 . heap . heap / 0 / heap / 0 / heap / 0 // 0 / heap / 1 / heap // 0 0 . heap . heap . heap . heap //u//s// 0 s heap s 5 //u heap //u 0
らしい。 dirname("//") は POSIX でどうなるか決まってないらしい。
(02:27)
前 | 2012年 10月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。