[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000462] Re: proto2c



ごとけんです

In message "[dennou-ruby:000461] Re: proto2c"
    on 00/11/04, "TOYODA Eizi" <toyoda@xxxxxx> writes:
>おっしゃるとおり、終端文字などというものはありません。そもそも終端なんて概
>念がありえないのです。まさか堀之内さんはおわかりだと思っていたのですが、不
>安になってきたので念のため。

ですよね。以前小さなテストをしてg77ではそうなっていることを
確認しました。

>たぶん CHARACTER*(*) と宣言したときは理解しやすくて、サブルーチンにとって
>も呼び出し元で与えた長さの文字列ということになります。

つまり、十分に長い領域を確保して、そこに nul を詰め込んで、
サブルーチンに渡し、帰って来たもののうち nul でない部分を使
うと言う方法しかないのかしら。

>そういう意味では cresult が 6 文字以上なら 6 文字目以降はサブルーチンが
>文字長だと思っている長さまでずっと空白を入れます。空白とは具体的には私の
>知るすべての処理系で ASCII SPACE を入れます。6 文字以上期待しているのに
>5 バイトしか与えなかったら、たいていすごく嫌なことが起こるはずです。

でしょうね。この意味で必要領域の最大長を知っておくことは必要
なはずです。ところで、(DCLには無いと思うけど)空白で終わるよ
うな文字列を返してくるようなばあいは、詰め物の空白と値の空白
の境界が判定出来ないのですね。

-- gotoken