定義から分かるように、パイプは一方向なので、 \fItype\fP 引き数には読み込みか書き込みのどちらか一方だけを指定できる (両方は指定できない)。
生成されるストリームは、この指定に対応して、読み取り専用または 書き込み専用のいずれかとなる。
.PP
-\fIcommand\fP 引き数は、シェルのコマンドラインを含むヌル終端された文字列へのポインタである。 このコマンドは \fB\-c\fP フラグを用いて
+\fIcommand\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\82·ã\82§ã\83«ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82\92å\90«ã\82\80ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ \fB\-c\fP ã\83\95ã\83©ã\82°ã\82\92ç\94¨ã\81\84ã\81¦
\fI/bin/sh\fP に渡される。 コマンドの解釈は (もし必要ならば) シェルによって行われる。 \fItype\fP
-引き数は、ヌル終端された文字列へのポインタで、 読み込みを示す文字 \(aqr\(aq か、書き込みを示す文字 \(aqw\(aq の
+å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81 èªã\81¿è¾¼ã\81¿ã\82\92示ã\81\99æ\96\87å\97 \(aqr\(aq ã\81\8bã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92示ã\81\99æ\96\87å\97 \(aqw\(aq ã\81®
どちらか一方を指定しなければならない。 glibc 2.9 以降では、この引き数に文字 \(aqe\(aq を追加で指定できる。 文字
-\(aqe\(aq を指定すると、 対応するファイルディスクリプタにおいて、 close\-on\-exec フラグ (\fBFD_CLOEXEC\fP)
+\(aqe\(aq ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81 対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81\8aã\81\84ã\81¦ã\80\81 close\-on\-exec ã\83\95ã\83©ã\82° (\fBFD_CLOEXEC\fP)
がセットされる。 これが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.PP
\fBpopen\fP() からの返り値は、通常の標準 I/O ストリームと同じであるが、 \fBfclose\fP(3) ではなく \fBpclose\fP()
ストリームからの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコマンドの標準入力は \fBpopen\fP()
を呼んだプロセスの標準入力と同一である。
.PP
-デフォルトでは、 \fBpopen\fP() の出力ストリームは完全にバッファリングされることに注意しよう。
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81 \fBpopen\fP() ã\81®å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯å®\8cå\85¨ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\82\88ã\81\86ã\80\82
.PP
\fBpclose\fP() 関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 \fBwait4\fP(2)
によって返されたコマンドの終了状態を返す。
.SH 返り値
-\fBpopen\fP() 関数は、 \fBfork\fP(2) または \fBpipe\fP(2) 呼び出しが失敗した場合や、 メモリ割り当てができなかった場合、
-NULL を返す。
+\fBpopen\fP() 関数は、 \fBfork\fP(2) または \fBpipe\fP(2) 呼び出しが失敗した場合や、
+メモリー割り当てができなかった場合、 NULL を返す。
.PP
.\" These conditions actually give undefined results, so I commented
.\" them out.
\fBpclose\fP() 関数は、 \fBwait4\fP(2) がエラーを返したり、何か他のエラーが見つかった場合、 \-1 を返す。 その場合、
\fIerrno\fP にエラーの原因を示す値が設定される。
.SH エラー
-\fBpopen\fP() 関数は、メモリアロケーションに失敗しても \fIerrno\fP をセットしない。 \fBpopen\fP() が中で呼び出す
+\fBpopen\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83ã\82±ã\83¼ã\82·ã\83§ã\83³ã\81«å¤±æ\95\97ã\81\97ã\81¦ã\82\82 \fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81ªã\81\84ã\80\82 \fBpopen\fP() ã\81\8cä¸ã\81§å\91¼ã\81³å\87ºã\81\99
\fBfork\fP(2) や \fBpipe\fP(2) が失敗した場合には、 \fIerrno\fP が適切にセットされる。 引き数 \fItype\fP
が無効であり、この状態が検知された場合には、 \fIerrno\fP が \fBEINVAL\fP にセットされる。
.PP
\fItype\fP に指定できる \(aqe\(aq は Linux での拡張である。
.SH バグ
読み込みのために開かれたコマンドの標準入力は \fBpopen\fP(), を呼んだプロセスと一緒に、その読み取り位置を共有する。
-そのため、もとのプロセスがバッファリングされた読み取りを終了したら、 そのコマンドの入力位置は予想されたものには なっていないかもしれない。
+ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\82\82ã\81¨ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9fèªã\81¿å\8f\96ã\82\8aã\82\92çµ\82äº\86ã\81\97ã\81\9fã\82\89ã\80\81 ã\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81®å\85¥å\8a\9bä½\8dç½®ã\81¯äº\88æ\83³ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81«ã\81¯ ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
同様に、書き込みのために開かれたコマンドからの出力は、 もとのプロセスの出力と混ざり合うことになるかもしれない。 後者は \fBpopen\fP() の前に
\fBfflush\fP(3) を呼び出すことによって回避可能である。
.PP