トップ «前の日記(2012-10-12) 最新 次の日記(2012-10-14)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

ToDo:


2012-10-13

_ basename と dirname

をちょっと書いた。

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)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

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
1.shinh(2012-10-15 23:52) 2.Egtra(2012-10-15 22:54) 3.shinh(2012-10-14 21:56)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h