$PRINCIPALの入出力デバイスが異なる場合、USEコマンドは、$PRINCIPALの入力側に適切なデバイスパラメータを適用するために、固有の特殊変数$ZPOUTを認識します。$ZPOUTを使用するUSEは、$PRINCIPALの入力側と出力側のREADとWRITEに対して$IOを$PRINCIPALに設定します。$ZSOCKET() は最初の引数として$ZPOUTを受け取り、デバイスがスプリットSOCKETデバイスであれば、出力SOCKETデバイスに関する情報を供給します。USEまたは$ZSOCKET()以外のコンテキストで、または、$PRINCIPALが分割されたデバイスでない場合、$PRINCIPAL、$ZPIN、$ZPOUTは同義です。分割された$PRINCIPALの場合、$ZPOUTは$PRINCIPALの値の後に文字列 "> /" を返します。OPEN $ZPOUTを試みると、DEVOPENFAILエラーが発生します。
詳細は、“$Principal”, “$ZPIN” と “$ZSOCKET()” を参照してください。
例:
;zpioin ;123456789012345678901234567890123456789012345678901234567890 ;A12345678901234567890123456789012345678901234567890123456789 zpio ; mumps -r zpio < zpioin write "$PRINCIPAL = ",$P,! write "$ZPIN = ",$ZPIN,! write "$ZPOUT = ",$ZPOUT,! write "Read first line from zpioin with default settings",! read x write x,! zshow "d" use $ZPIN:(wrap:width=50) write "After $ZPIN set to wrap and width set to 50",! zshow "d" write "Read next 50 characters from zpioin",! read y write y,! use $ZPOUT:wrap use $ZPIN:nowrap write "After $ZPOUT set to wrap and $ZPIN set to nowrap",! zshow "d" use $ZPOUT:nowrap write "After $ZPOUT set to nowrap",! zshow "d" use $P:wrap write "After $P set to wrap",! zshow "d" use $ZPOUT:width=40 write "After $ZPOUT width set to 40",! zshow "d" use $ZPOUT:nowrap write "After $ZPOUT set to nowrap",! zshow "d" write x,! quit