重松です。こんにちは。 > ソースを追っていないのですが、basename() 自体が、 > C のライブラリのそれを使っているのではないでしょうか? ソース見ました。 ./ext/standard/string.c そのままは使っていなかったです。 が、戻り値が char* であり、その長さを返していません。 それに、suffix の切りつめが、\0 書き込みだし。 なので、最低でも結果の長さを返さないとうまく行かないと思います。 RETURN_STRING(X,Y) の X に char* を, Y に 0 を返しているのですが、 Y に正しい長さを返すといいのでしょうか。 -- Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>