長南洋一
cyoic****@maple*****
2013年 11月 6日 (水) 22:12:26 JST
長南です。なかなか進みません。 16.3 `test' `-O FILE' True if FILE exists and is owned by the current effective user ID. `-G FILE' True if FILE exists and is owned by the current effective group ID. この "the current effective user ID (group ID)" をどう訳したらよいのか 悩んでいます。簡単なようで、難しい。直訳すれば、 FILE が存在し、現在の実効ユーザ ID に所有されていれば、真。 ですが、「現在の実効ユーザ ID」が曖昧すぎる気がします。この場合、 current を「現在の」と訳すのがまずいのかもしれません。そこで、 こんな訳にしてみました。 FILE が存在し、現プロセスの実効ユーザ ID によって所有されて いれば、真。 FreeBSD の manpage では、"True if file exists and its owner matches the effective user id of this process"と言っていますから、これで 間違いではないと思いますが、「現プロセス」が何を指しているか、 やはり分かりにくいかもしれません。 そんなわけで、今のところは、次のような訳にしています。 FILE が存在し、その所有者がコマンド実行者の実効ユーザ ID と 同じならば、真。 FILE が存在し、そのグループがコマンド実行者の実効グループ ID と 同じならば、真。 「コマンド」を抜かして「実行者の」だけもで通じるでしょうか。 「test コマンド実行者の」とまで言った方がよいでしょうか。 test コマンドに set-user-ID bit や set-group-ID bit が付いている 場合まで考えると (そんなことは、まずないでしょうが)、「実行者の」 と言うより「プロセスの」と言った方がよいように思えますし、難しい ところです。 これぞ決定版と言えそうな訳はありませんか。曖昧ながら、「現在の実効 ユーザ ID」で何となく分ってもらうのが、一番無難なのでしょうか。 19.2 `stty' これ章については、ほとんど内容を理解しないまま、言葉の上だけで訳して います。できたら、翻訳の全文をお読みになって (大部分が設定項目の 箇条書きです)、内容的におかしいところがあったら、教えていただけると 助かります。 一つだけ挙げておくと、この "until the carrier detect line is high" の high をどう訳したらよいか。「活動するまで」とか「活性化するまで」 とかも考えました。ついでに言うと、最後の文の allow を省略しています。 allow を生かせば、「シェルがいつもどおりのやり方でデバイスをオープン できるようにすることは」ぐらいでしょうか。allow があってもなくても、 結局同じではないかと思ったのですが、やっぱり違いますか。 `-F DEVICE' `--file=DEVICE' Set the line opened by the file name specified in DEVICE instead of the tty line connected to standard input. This option is necessary because opening a POSIX tty requires use of the `O_NONDELAY' flag to prevent a POSIX tty from blocking until the carrier detect line is high if the `clocal' flag is not set. Hence, it is not always possible to allow the shell to open the device in the traditional manner. 標準入力に結びついている tty ラインを操作の対象にする代わりに、 DEVICE で指定されたファイル名を使ってオープンするラインを操作の 対象にする。このオプションが必要なのは、POSIX 準拠の tty を オープンするには、`O_NONDELAY' フラグを使う必要があるからである。 そうしないと、POSIX 準拠の tty は、`clocal' フラグがセットされて いない場合に、キャリア検出線 (carrier detect line) が活発化する まで、ブロッキングを起こす。そんなわけで、シェルがいつもどおりの やり方で (訳注: たとえば、`stty < /dev/ttyS1' のような方法で) デバイスをオープンすることは、いつでも可能というわけではないのだ。 21.7 `uptime' load average は「平均負荷」と「負荷平均」の両方の訳がありますが、 どちらがよいのでしょうか? 23.1 `chroot' chroot の 脚注 (Footnotes) ... Also, on Cygwin, anyone can run the `chroot' command, because the underlying function is non-privileged due to lack of support in MS-Windows. ... また、Cygwin では、どんなユーザでも `chroot' コマンドを実行できる。内部で呼び出される関数が、MS-Windows では 特権のサポートを欠いており、そのため非特権的だからである。 一応上のように訳しましたが、"lack of support in MS-Windows" が わかりません。Windows では、何のサポートを欠いているのでしょう。 また、"in Windowns" は、"is non-privileged" と "lack of support" の どちらにかかるのでしょう。non-privileged の訳も適当にごまかしています。 23.3 `nice' nice についても、よく分からないで訳しています。"niceness" という 言葉自体、どう訳してよいか分からないくらいです。特に分からないのは、 次の部分。訳文は内容的に正しいですか。 A niceness should not be confused with a scheduling priority, which lets applications determine the order in which threads are scheduled to run. Unlike a priority, a niceness is merely advice to the scheduler, which the scheduler is free to ignore. Also, as a point of terminology, POSIX defines the behavior of `nice' in terms of a "nice value", which is the nonnegative difference between a niceness and the minimum niceness. Though `nice' conforms to POSIX, its documentation and diagnostics use the term "niceness" for compatibility with historical practice. niceness をスケジューリング優先度 (scheduling priority) と混同しては ならない。後者は、様々なスレッドをどういう序列で実行するかの予定を組む 際に、その序列をアプリケーション側に決めさせるものである。優先度とは 違って、niceness はスケジューラに対する単なるアドバイスにすぎず、スケ ジューラはそれを無視することができるのだ。また、用語について言うと、 POSIX は `nice' の動作を "nice value" という用語で定義している。 この nice value は、ある niceness と 最小の niceness との間の負ではない 差である。`nice' コマンドは POSIX に準拠しているものの、この文書や エラーメッセージでは、従来の習慣との親和性を考慮して、"niceness" という 言葉を使っている。 23.4 `nohup' イマイチわからないで訳しています。 23.5 `stdbuf' これもよく分かっていません。とくにここ。 The MODE can be specified as follows: `L' Set the stream to line buffered mode. In this mode data is coalesced until a newline is output or input is read from any stream attached to a terminal device. This option is invalid with standard input. ストリームを行単位のバッファ・モードにする。このモードでは、改行が 出力されるか、あるいは、端末デバイスに結びついているストリームから 入力が読み込まれるまで、データを溜めておく。このオプションは、標準 入力に対しては無効である。 coalesced を「溜めておく」と訳して構いませんか。「端末デバイスに 結びついているストリームから入力が読み込まれるまで」も、どういうことか よくわからないまま訳しています。 `SIZE' Specify the size of the buffer to use in fully buffered mode. ---- (以下省略) ---- バッファ一杯モード (fully buffered mode) で使用するバッファのサイズ を指定する。 「バッファ一杯モード」という訳は、やりすぎでしょうか。もしそうなら、 何かよい訳語がありますか。 26.2 `seq' 次の文の "a 64-bit fractions" の fractions は「浮動小数点数」と訳して よいでしょうか。outlandish にもっとぴったりした訳語はないでしょうか。 Be careful when using `seq' with outlandish values: otherwise you may see surprising results, as `seq' uses floating point internally. For example, on the x86 platform, where the internal representation uses a 64-bit fraction, the command: seq 1 0.0000000000000000001 1.0000000000000000009 outputs 1.0000000000000000007 twice and skips 1.0000000000000000008. `seq' でとんでもなく大きな桁の値を使うときは、気をつけた方が よい。さもないと、`seq' は内部で浮動小数点を使用しているので、 結果を見てびっくりするかもしれない。たとえば、x86 のプラット フォームでは内部表現に 64 ビットの浮動小数点数を使用しているが、 そこで次のコマンドを実行すると、 seq 1 0.0000000000000000001 1.0000000000000000009 seq' は 1.0000000000000000007 を二度出力し、1.0000000000000000008 をスキップする。 しかし、このコマンドは、わたしのところでは 1.0000000000000000008 ではなく、1.0000000000000000006 をスキップします。原文には x86 と 書いてありますし (x86 というのは 32 ビットまでの CPU のことですね)、 うちのパソコンは古いとは言え Athlon 64 ですから、そのせいでしょうか。 皆さんのところでは、どうなりますか。32 ビットの CPU で最近の coreutils を試すことができる方がいらっしゃると、よいのですが。 あと一回ほど質問することになりそうです。 -- 長南洋一