On Tue, May 17, 2022 at 2:42 PM matsuand <michi****@gmail*****> wrote: > > matsuand です。 > > On Tue, May 17, 2022 at 1:27 PM Akihiro Motoki <amoto****@gmail*****> wrote: > ... > > would block ですが、そのままにしておくと、ブロックが発生してしまう状況、 > > ということを言っていますね。 > > 実際には、その前にフラッシュをしてその状況をロジックとして回避するので、 > > 入力がブロックしてしまうことはない。実際には起こらないので、 > > 仮定法の would が使われています。 > > 「めったに起きないけど」というニュアンスではないと思います。 > > 「めったに起きないけど」というニュアンスではなく、 > 「実際には起こらないので」、とご説明頂きました。 > > > 訳として、今の訳に近いですが、would のニュアンスを反映するなら、 > > 「ブロックされるような場合」「ブロックされてしまう場合」 > > なども候補に入ると思います。 > > 上であるとすると、そしてそれが明らかなのであれば > 「ブロックされるような場合」や > 「ブロックされてしまう場合」ではなく、 > 起こり得ない仮定を表現すべく、 > 「(仮に)ブロックされてしまったとしたら」とする方が > 適訳ではないですか? > #私はいまだに処理内容は把握していません・・ would block が何を意味しているかは read(2) の non-blocking mode (O_NONBLOCK) と EWOULDBLOCK エラーを使う状況を理解するのが一番わかりやすいと思います。 https://man7.org/linux/man-pages/man2/read.2.html#ERRORS read(2) システムコールを呼び出すと、通常 (blocking mode) だと読み出すものがない場合は read() の呼び出しは block します。 non-blocking mode だと、block する代わりに EWOULDBLOCK エラーが返されます。 これを考慮して、「block が起こるような状況」 (would block) という表現が使われています。 対応する xz のソースコードは以下のはずです。 https://git.tukaani.org/?p=xz.git;a=blob;f=src/xz/file_io.c;h=0ba8db8fbc4ccba7024a3af54e0ba75268b619e6;hb=2327a461e1afce862c22269b80d3517801103c1b#l1116 訳をいきなり議論するより、何を意味しているかを理解した方がわかりやすいと思うので、 状況の説明をしてみました。訳はおまかせします。 以上です。