[JM:00298] Re: LDP_man-pages/man2/ioctl.2

Back to archive index

長南洋一 cyoic****@maple*****
2011年 8月 3日 (水) 17:20:10 JST


長南です。

ご指摘ありがとうございます (わたしは、この翻訳者ではありませんけれど)。

OKANO さんのメールより [JM:00297]
>
> LDP_man-pages/man2/ioctl.2
> に、原文が残ったままのところがありましたのでお知らせします。
> 
>> .SH 返り値
>> .BR ioctl ()
>> requests use the return value as an output parameter
>> たいていの場合、成功した場合はゼロが返される。
>> いくつかの
>> .BR ioctl ()
>> 要求では出力パラメータとして返り値を使用していたり、
>> 成功した場合に非 0 の値を返したりする。
>> エラーの場合は \-1 が返され、
>> .I errno
>> が適切に設定される。
> 
> 「.SH 返り値」
> のあとの 2 行を削除すればよいかと思います。
> (原文は以下のとおり)
> 
>> .SH "RETURN VALUE"
>> Usually, on success zero is returned.
>> A few
>> .BR ioctl ()
>> requests use the return value as an output parameter
>> and return a nonnegative value on success.
>> On error, \-1 is returned, and
>> .I errno
>> is set appropriately.

原文をコメントアウトし忘れたんですね。あら、あら、と思って見ている
うちに、別の問題にも気がつきました。

  A few ioctl() requests use the return value as an output parameter
  and return a nonnegative value on success.

の and は、「〜たり」というより、「従って」の意味に近いのでは
ないでしょうか。それに、non-zero ではなくて、nonnegative です。
訳例をあげると、

  たいていの場合、成功すると 0 が返されるが、ioctl() の requests
  の中には、返り値を出力パラメータとして使用しているものが
  若干あり、その場合は、成功したときに非負の値が返される。
  エラーの場合は ...

ついでに言うと、

  An ioctl() request has encoded in it whether the argument is
  an in parameter or out parameter, and the size of the argument argp
  in bytes.

  ioctl() request には、以下の情報をバイト数でエンコードする:
  (1)引き数が入力  パラメータか  出力 パラメータのどちらかであるか、
  (2) argp の大きさ。

この訳もちょっとおかしい気がします。in bytes は the size of the
argument argp のみにかかるのではないでしょうか。また、has encoded と
完了形ですから、「エンコードしてある」とか「エンコードしておく」、
あるいは受身にして、「エンコードされている」などになるのでは
ないでしょうか (具体的なことがわかっていないので、どれが適当か
判断できませんが)。

ioctl_list(2) の「ioctl の構造」セクションに、

  後の時代 (0.98p5) になると、より多くの情報が数値に組み込まれる
  ようになりました。1 つの数値は、読み書きの方向を表す 2 ビット
  (00:  読み書きなし, 01: 書き込み, 10: 読み込み, 11: 読み込み/書き込み)、
  (引き数のサイズを表す) 14 ビット、 (共通の目的または共通のドライバで
  ioctl  をグループにするための)  8 ビットのタイプ、8 ビットの
  シリアル番号から構成されます。

と、あります。これを ioctl() の request の説明と考えてよいのなら
(間違っていますか)、ほかの情報もエンコードするわけですから、
たとえば、こんな訳になると思います。

  ioctl() の request には、この引数は入力パラメータか、それとも
  出力パラメータかという区別や、argp 引数のバイト単位のサイズ
  (といった情報) がエンコードされている。

# and を「と」ではなく、「や」と訳して、「ほかにもあるかも」と、
# それとなくほのめかしているつもりです。

それから、「準拠」のこの部分。

  (この関数は  Unixの ストリーム I/O モデル に 明らかに適合しない
  様々な操作に使用される)。

原文が以下のものならば、

  (the call is used as a catch-all for operations that don't
  cleanly fit the Unix stream I/O model). 

「明らかに適合しない」は「きちんと適合していない」だと思います
(もっとこなれた言い方があるでしょうが)。catch-all は「何でも屋、
便利屋、便利ツール、万能薬」ぐらいでしょうか。ちょっと悪ノリすると、
「万能膏、十徳ナイフ、スイス・アーミーナイフ」などになります。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
Back to archive index