## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > open

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    open — ファイルの通信路又は､命令パイプの通信路を開く Open a file-based or command pipeline channel
  構文 SYNOPSIS
  説明 DESCRIPTION
    r
    r+
    w
    w+
    a
    a+
    RDONLY
    WRONLY
    RDWR
    APPEND
    BINARY
    CREAT
    EXCL
    NOCTTY
    NONBLOCK
    TRUNC
    -stat
  COMMAND PIPELINES
  直列通信 SERIAL COMMUNICATIONS
    -mode baud,parity,data,stop
    -handshake type
    -queue
    -timeout msec
    -ttycontrol {signal boolean signal boolean ...}
    -ttystatus
    -xchar {xonChar xoffChar}
    -closemode closeMode
      default
      discard
      drain
    -inputmode inputMode
      normal
      password
      raw
      reset (set only)
    -winsize
    -pollinterval msec
    -sysbuffer inSize
    -sysbuffer {inSize outSize}
    -lasterror
  SERIAL PORT SIGNALS
    TXD (output)
    RXD (input)
    RTS (output)
    CTS (input)
    DTR (output)
    DSR (input)
    DCD (input)
    RI (input)
    BREAK
  ERROR CODES (Windows only)
    RXOVER
    TXFULL
    OVERRUN
    RXPARITY
    FRAME
    BREAK
  PORTABILITY ISSUES
    Windows
    Unix
  CONSOLE CHANNELS
    -inputmode inputMode
      normal
      password
      raw
      reset (set only)
    -winsize
  EXAMPLES
  SEE ALSO
  KEYWORDS

### NAME

open — ファイルの通信路又は､命令パイプの通信路を開く Open a file-based or command pipeline channel

### 構文 SYNOPSIS

open fileName
open fileName access
open fileName access permissions

### 説明 DESCRIPTION

この命令は､ファイルや､直列入力端子､命令パイプライン､を開け､後々､ read や puts や close のような命令の起動に使用できる通信路の識別子を返す｡もし､ fileName の最初の文字が | でなければ､この命令はファイルを開ける: fileName は開けるべきファイルの名前を与える､又､それは取扱説明書の filename の項目に記述された規則に準拠していなければならない｡ This command opens a file, serial port, or command pipeline and returns a channel identifier that may be used in future invocations of commands like read, puts, and close. If the first character of fileName is not | then the command opens a file: fileName gives the name of the file to open, and it must conform to the conventions described in the filename manual entry.

access 引数が存在する場合はファイル(又は命令パイプライン)が利用される方法を示している｡第１の形式では access は､次の値のいずれかを有することができる: The access argument, if present, indicates the way in which the file (or command pipeline) is to be accessed. In the first form access may have any of the following values:

r
  ファイルを読取り専用で開く; ファイルは実在していなければならない｡ access が指定されていない場合は､これが省略時設定の値である｡ Open the file for reading only; the file must already exist. This is the default value if access is not specified.

r+
  ファイルを読取りと書込みの両方で開く; ファイルは実在していなければならない｡ Open the file for both reading and writing; the file must already exist.

w
  ファイルを書き込み専用で開く｡ファイルが実在する場合は､切詰める｡実在しない場合は､新しくファイルを作成する｡(訳註 新しいディレクトリーの作成は file mkdir 参照)　　 Open the file for writing only. Truncate it if it exists. If it does not exist, create a new file.

w+
  ファイルを読取りと書込みの両方で開く｡ファイルが実在する場合は､切詰める｡実在しない場合は､新しくファイルを作成する｡(訳註 当該ファイルを容れるディレクトリーが実在しないと不都合になるようだ) Open the file for reading and writing. Truncate it if it exists. If it does not exist, create a new file.

a
  ファイルを読取りと書込みの両方で開く｡ファイルが実在する場合は､切詰める｡実在しない場合は､新しくファイルを作成する｡(訳註 当該ファイルを容れるディレクトリーが実在しないと不都合になるようだ) Open the file for writing only. If the file does not exist, create a new empty file. Set the file pointer to the end of the file prior to each write.

a+
  読取り及び書込み用にファイルを開く｡ファイルが実在しない場合､新しい空のファイルを作成する｡ ファイル末尾に初期の利用位置を設定する｡(訳註 当該ファイルを容れるディレクトリーが実在しないと不都合になるようだ)　 Open the file for reading and writing. If the file does not exist, create a new empty file. Set the initial access position to the end of the file.

上述の､全ての正規の access の値は､第二或は第三番目の文字として追加して文字 b を有すことができ､その値により､開いた通信路は､恰も fconfigure -translation binary 指示項目によって構成設定された如くに､二進データの読込みや書込みに適させることを示す｡ All of the legal access values above may have the character b added as the second or third character in the value to indicate that the opened channel should be configured as if with the fconfigure -translation binary option, making the channel suitable for reading or writing of binary data.

第二の形式では､ access は下のどれかの旗印のリストを構成し､又､その殆どは､標準の POSIX の意味を有する｡旗印の内の一つは､ RDONLY か WRONLY か RDWR のどれかでなければならない｡ In the second form, access consists of a list of any of the following flags, most of which have the standard POSIX meanings. One of the flags must be either RDONLY, WRONLY or RDWR.

RDONLY
  ファイルを読取り専用で開く｡ Open the file for reading only.

WRONLY
  ファイルを書込み専用で開く｡ Open the file for writing only.

RDWR
  ファイルを読取りと書込みの両方で開く｡ Open the file for both reading and writing.

APPEND
  毎回､書込みに先立って､ファイルの位置指定をファイル末尾に設定する｡ Set the file pointer to the end of the file prior to each write.

BINARY
  開かれた通信路を -translation binary 指示項目によって構成設定する Configure the opened channel with the -translation binary option.

CREAT
  ファイルが実在しなければ生成する(この旗印がないと､ファイルが実在しない場合に不都合になる)｡ Create the file if it does not already exist (without this flag it is an error for the file not to exist).

EXCL
  もしCREAT が一緒に設定されていて､ファイルが既に実在すると､不都合が返ってくる｡ If CREAT is also specified, an error is returned if the file already exists.

NOCTTY
  もし､ファイルが端末装置であると､この旗印は､ファイルが処理手順の制御端末になることを抑止する｡ If the file is a terminal device, this flag prevents the file from becoming the controlling terminal of the process.

NONBLOCK
  ファイルが開かれる間と､それに引続く入出力操作に起りうる処理の抑制を防ぐ｡この旗印の正確な動作は､系や装置に依存する; その使用は推奨されない(ファイルを非同期様式にするには､ fconfigure 命令を使用する方が好ましい)｡詳細は､使用している系の説明書の open 系呼出しの O_NONBLOCK 旗印の項を参照されたい｡ Prevents the process from blocking while opening the file, and possibly in subsequent I/O operations. The exact behavior of this flag is system- and device-dependent; its use is discouraged (it is better to use the fconfigure command to put a file in nonblocking mode). For details refer to your system documentation on the open system call's O_NONBLOCK flag.

TRUNC
  もしファイルが実在すると長さ0に切詰める｡ If the file exists it is truncated to zero length.

もし､新しいファイルが､開く(open命令)動作に付随して作成された場合､(整数としての)使用権限 permissions は､手順のファイル作成様式の篩と共に協調して､新しいファイルの使用権限を設定するために使用される｡使用権限 permissions の省略時設定は0666｡(訳注 0666＝自分､同僚､他人､が読み書き可) If a new file is created as part of opening it, permissions (an integer) is used to set the permissions for the new file in conjunction with the process's file mode creation mask. Permissions defaults to 0666.

開かれたファイルが通常のディスクファイルの時､chan configure 命令と､fconfigure 命令は､この追加の構成設定を問合す為に使われ得る: When the file opened is an ordinary disk file, the chan configure and fconfigure commands can be used to query this additional configuration option:

-stat
  この指示項目は､読む時は､辞書を返すが､ その値の多くはfile stat命令から得られ､且つ､ 統計情報は､実際に開かれているファイルに関している｡ 辞書内の鍵語は､とりわけ､atimeとctimeとdevとgidとinoとmodeとmtimeとnlinkとsizeとtypeとuidとを含む; mtimeとsizeとtype欄は存在が保障され､且つ､全てのOS上で意味深い; 他の鍵語も存在し得る｡ This option, when read, returns a dictionary of values much as is obtained from the file stat command, where that stat information relates to the real opened file. Keys in the dictionary may include atime, ctime, dev, gid, ino, mode, mtime, nlink, size, type, and uid among others; the mtime, size and type fields are guaranteed to be present and meaningful on all platforms; other keys may be present too.

  実装 註意事項: この指示項目は､Windows上のGetFileInformationByHandle()呼出しに､対応つけされている､又､ユニクスの通信規格のPOSIX系fstat()呼出しにも; 報告される情報は､この系呼出しで作られたこと､である｡ Implementation note: This option maps to a call to fstat() on POSIX platforms, and to a call to GetFileInformationByHandle() on Windows; the information reported is what those system calls produce.

### COMMAND PIPELINES

もし fileName の最初の文字が “|” であると､ fileName の残りの文字は､ exec に対する引数と同じ方式で､起動される命令パイプラインを記述している､引数のリストとして扱われる｡この場合､ open 命令から返って来た通信路識別子は､方向(access )の値に応じて､命令の入力パイプへの書込み､又は､その出力パイプから読込みに使用される｡もし､書込み専用で使用されていると(譬えば､方向 が “w”) ､出力パイプライン対する標準出力は､その命令による上書きがなされる迄は､現在の標準出力が指定される｡もし､読込み専用で使用されていると(譬えば､方向 が “r”) ､入力パイプラインに対する標準入力は､その命令による上書きがなされる迄は､現在の標準入力が取得される｡仔供の手順の識別番号は pid 命令を通して利用でき､open 命令の引数として返される通信路識別子を使用する｡ If the first character of fileName is “|” then the remaining characters of fileName are treated as a list of arguments that describe a command pipeline to invoke, in the same style as the arguments for exec. In this case, the channel identifier returned by open may be used to write to the command's input pipe or read from its output pipe, depending on the value of access. If write-only access is used (e.g. access is “w”), then standard output for the pipeline is directed to the current standard output unless overridden by the command. If read-only access is used (e.g. access is “r”), standard input for the pipeline is taken from the current standard input unless overridden by the command. The id of the spawned process is accessible through the pid command, using the channel id returned by open as argument.

命令パイプ内で実行されていた命令(か命令の一つ)が不都合( exec 内の定義に従って)を返す場合､通信路上で close が呼ばれた時にパイプラインが非同期様式で退出宣言が返らない限り､ Tcl 不都合が生成される( -blocking 0 を伴う警告無しの close )｡ If the command (or one of the commands) executed in the command pipeline returns an error (according to the definition in exec), a Tcl error is generated when close is called on the channel unless the pipeline is in non-blocking mode then no exit status is returned (a silent close with -blocking 0).

fileevent 命令を パイプラインと一緒に使うことは､しばしば有効で､他の処理が同じ時刻に背景処理中の命令の実行として起るかもしれない｡ It is often useful to use the fileevent command with pipelines so other processing may happen at the same time as running the command in the background.

### 直列通信 SERIAL COMMUNICATIONS

もし､ fileName が直列入力端子を参照していると､指定した直列入力端子が開き､OS依存の方法で初期化される｡直列入力端子を開ける為に使う fileName として受入れられる値は､ PORTABILITY ISSUES の節に記述されている｡ If fileName refers to a serial port, then the specified serial port is opened and initialized in a platform-dependent manner. Acceptable values for the fileName to use to open a serial port are described in the PORTABILITY ISSUES section.

chan configure と fconfigure 命令は直列通信路に特有な追加の構成設定指示項目を問合せ及び設定する為に使うことができる(運営されている箇所で): The chan configure and fconfigure commands can be used to query and set additional configuration options specific to serial ports (where supported):

-mode baud,parity,data,stop
  この指示項目は４組の､コンマで区切った値である: この直列入力端子の､１秒当りのビット数､偶奇確認､データのビット個数､停止ビット数である｡１秒当りのビット数は単純整数で接続速度を規定する｡偶奇確認は､次の内の一つの記号であり: n, o, e, m, s ; それぞれ､ “none(なし)”, “odd(奇数)”, “even(偶数)”, “mark(印)”, “space(空白)” に相当する｡Data はデータのビット個数で５から８の間の整数であり､ stop は停止ビットの数で､整数の１か２のはずである｡ This option is a set of 4 comma-separated values: the baud rate, parity, number of data bits, and number of stop bits for this serial port. The baud rate is a simple integer that specifies the connection speed. Parity is one of the following letters: n, o, e, m, s; respectively signifying the parity options of “none”, “odd”, “even”, “mark”, or “space”. Data is the number of data bits and should be an integer from 5 to 8, while stop is the number of stop bits and should be the integer 1 or 2.

-handshake type
  (Windows と Unix)｡この指示項目は､自動的に相互握手方式通信制御を設定する｡註意すべきは､使用者のOSの､全ての相互握手方式の型が運用されている訳ではない｡この type 假引数は大文字小文字に無関係である｡ (Windows and Unix). This option is used to setup automatic handshake control. Note that not all handshake types maybe supported by your operating system. The type parameter is case-independent.

  もし､ type が､ none であれば､如何なる相互握手方式も否に切替わり､ rtscts は装置系の相互握手方式を是にする｡装置系の相互握手方式の信号は下に記述する｡ソフト系の相互握手方式の xonxoff 相互握手方式文字が -xchar で再定義できる｡追加の装置系の相互握手方式の dtrdsr は Windows のみで使用できる｡相互握手方式に関する構成設定の省略時設定はない｡初期値は使用者のOSの設定に依存する｡ -handshake 指示項目は問合せできない｡　　　 If type is none then any handshake is switched off. rtscts activates hardware handshake. Hardware handshake signals are described below. For software handshake xonxoff the handshake characters can be redefined with -xchar. An additional hardware handshake dtrdsr is available only under Windows. There is no default handshake configuration, the initial value depends on your operating system settings. The -handshake option cannot be queried.

-queue
  (Windows と Unix)｡-queue 指示項目は問合せのみ可能である｡現在の入力と出力の待ち行列のバイトの個数を表す整数の､二要素のリストを返す｡ (Windows and Unix). The -queue option can only be queried. It returns a list of two integers representing the current number of bytes in the input and output queue respectively.

-timeout msec
  (Windows と Unix)｡この指示項目は､同期読出しの制限時間の設定に使用する｡これは､二つのバイトの間の最大受入れ期間を千分の一秒単位で指定する｡Unix系では､細かさは千分の百秒刻みである｡ -timeout 指示項目は､書き出し操作や非同期読込みには影響を与えない｡この指示項目は､問合せできない｡ (Windows and Unix). This option is used to set the timeout for blocking read operations. It specifies the maximum interval between the reception of two bytes in milliseconds. For Unix systems the granularity is 100 milliseconds. The -timeout option does not affect write operations or nonblocking reads. This option cannot be queried.

-ttycontrol {signal boolean signal boolean ...}
  (Windows と Unix)｡この指示項目は､相互握手方式出力線の設定に使用する(下を参照のこと)､恒久的に或は､直列線を超えて BREAKを送る為に｡この signal 名は大文字小文字を区別しない｡ {RTS 1 DTR 0} はRTS 出力を大文字に､ DTR 出力を小文字に設定する｡この BREAK 条件の(下を参照のこと)許可と不許可はそれぞれ {BREAK 1} と {BREAK 0} である｡ RTS (又は DTR)信号を､活動装置系の相互握手方式 rtscts (又は dtrdsr) に変更するのは推奨できない｡結果は予測できない｡ -ttycontrol 指示項目は問合わせできない｡ (Windows and Unix). This option is used to setup the handshake output lines (see below) permanently or to send a BREAK over the serial line. The signal names are case-independent. {RTS 1 DTR 0} sets the RTS output to high and the DTR output to low. The BREAK condition (see below) is enabled and disabled with {BREAK 1} and {BREAK 0} respectively. It is not a good idea to change the RTS (or DTR) signal with active hardware handshake rtscts (or dtrdsr). The result is unpredictable. The -ttycontrol option cannot be queried.

-ttystatus
  (Windows と Unix)｡この -ttystatus 指示項目は､問合せのみできる｡現在の変復調装置の状態と相互握手方式入力信号を返す(下を参照のこと)｡結果は､定まった順に信号と値の対を並べたリストで､譬えば {CTS 1 DSR 0 RING 1 DCD 0} である｡信号signal名前は大文字で返る｡ (Windows and Unix). The -ttystatus option can only be queried. It returns the current modem status and handshake input signals (see below). The result is a list of signal,value pairs with a fixed order, e.g. {CTS 1 DSR 0 RING 1 DCD 0}. The signal names are returned upper case.

-xchar {xonChar xoffChar}
  (Windows と Unix)｡この指示項目は､ソフト系の相互握手方式の特性の問合せと変更に使用される｡通常､OSの初期設定はDC1 (0x11) と DC3 (0x13)が ASCII 標準の XON と XOFF 文字を表現するよう設定される｡ (Windows and Unix). This option is used to query or change the software handshake characters. Normally the operating system default should be DC1 (0x11) and DC3 (0x13) representing the ASCII standard XON and XOFF characters.

-closemode closeMode
  (Windows と Unix)｡この指示項目は､通信路が閉じられる時､OS体系の緩衝域内の出力中断が如何に扱われるかを定義する､直列通信路閉鎖様式を問合せ､又は変更する為に使われる｡次の値が閉鎖様式について運営されている: (Windows and Unix). This option is used to query or change the close mode of the serial channel, which defines how pending output in operating system buffers is handled when the channel is closed. The following values for closeMode are supported:

  default
    OS体系の無為設定の操作が使われることになる事を示す; 全通信路はこれが無為設定｡ indicates that a system default operation should be used; all serial channels default to this.

  discard
    OS 緩衝域の内容が破棄されることを示す｡註意すべきは､ POSIX 端末に書いている時はこれは推奨しない､理由は､stderr の処理では予期しない影響があり得る｡ indicates that the contents of the OS buffers should be discarded. Note that this is not recommended when writing to a POSIX terminal, as it can interact unexpectedly with handling of stderr.

  drain
    通信路を閉じる時､全ての出力が尽きるまで Tcl は待たされることになる事を示す｡これは close を著しく減速するかもしれない｡ indicates that Tcl should wait when closing the channel until all output has been consumed. This may slow down close noticeably.

-inputmode inputMode
  (Unix のみ; Windows は黒窓通信路上に同等の指示項目がある)｡この指示項目は使用者からの対話入力が処理されるか制御している端末に通話しているとの假定の下で直列通信路の入力様式の問合せや変更に使われた｡inputMode について次の値が運営されている: (Unix only; Windows has the equivalent option on console channels). This option is used to query or change the input mode of the serial channel under the assumption that it is talking to a terminal, which controls how interactive input from users is handled. The following values for inputMode are supported:

  normal
    校正能力が可能な標準的端末を伴って､通常の行-志向入力が使われる事を指し示す｡ indicates that normal line-oriented input should be used, with standard terminal editing capabilities enabled.

  password
    校正能力が可能だが､端末に打鍵された文字を(改行以外は)書かない､標準的端末で､復唱なしの入力が使われることを指し示す｡幾つかの端末はこれを特別に指し示す｡ indicates that non-echoing input should be used, with standard terminal editing capabilities enabled but no writing of typed characters to the terminal (except for newlines). Some terminals may indicate this specially.

  raw
    全ての打鍵入力は直接 Tcl に与えられ､端末では全く何も処理しない｡打鍵に復唱しない､何をしているか解釈することは Tcl 記述譜に任せる｡ indicates that all keyboard input should be given directly to Tcl with the terminal doing no processing at all. It does not echo the keys, leaving it up to the Tcl script to interpret what to do.

  reset (set only)
    端末は､端末が開かれた時の状態に刷新されることを指し示す｡ indicates that the terminal should be reset to what state it was in when the terminal was opened.

  註意すべきは､この指示項目の設定は(技術的に､この指示項目経由でその初期値から端末状態を何でも変更する)､端末に通信路が閉鎖された時に端末の自動刷新を是にすることを惹き起こす｡ Note that setting this option (technically, anything that changes the terminal state from its initial value via this option) will cause the channel to turn on an automatic reset of the terminal when the channel is closed.

-winsize
  (Unix のみ; Windows は黒窓通信路上に同等の指示項目がある)｡この指示項目は問合せのみ｡端末の現在の巾と高さの､要素二つのリストを取り出す｡ (Unix only; Windows has the equivalent option on console channels). This option is query only. It retrieves a two-element list with the the current width and height of the terminal.

-pollinterval msec
  (Windows のみ)｡この指示項目は､ファイル行事の巡回期間の設定に使用される｡これは､直列入力端子のTcl 解釈実行系のあらゆる行事の点検期間に影響する(常に最小値を優先する)｡この指示項目は､直列入力端子の巡回期間を千分の十秒(無為設定)間隔から増加又は減少させたいときのみに使用されたい｡ (Windows only). This option is used to set the maximum time between polling for fileevents. This affects the time interval between checking for events throughout the Tcl interpreter (the smallest value always wins). Use this option only if you want to poll the serial port more or less often than 10 msec (the default).

-sysbuffer inSize

-sysbuffer {inSize outSize}
  (Windows のみ)｡この指示項目は､Windowsの直列通信路の緩衝領域の容量の変更に使用される｡特に､高速度情報交換の速度では潜在的系の為の無為設定の4096バイトの緩衝域容量を超過する可能性がある｡第１の形式では入力緩衝領域容量を指定し､第２の形式では､入力と出力の両方の緩衝領域が定義される｡ (Windows only). This option is used to change the size of Windows system buffers for a serial channel. Especially at higher communication rates the default input buffer size of 4096 bytes can overrun for latent systems. The first form specifies the input buffer size, in the second form both input and output buffers are defined.

-lasterror
  (Windows のみ)｡この指示項目は､問合せのみできる｡直列情報交換の不具合の場合､ read 又は puts は一般 Tcl ファイル 入出力 不具合を返して来る｡ fconfigure -lasterror は､不具合の詳細リストの取得を呼出せる｡種々の不具合番号説明は下を参照されたい｡ (Windows only). This option is query only. In case of a serial communication error, read or puts returns a general Tcl file I/O error. fconfigure -lasterror can be called to get a list of error details. See below for an explanation of the various error codes.

#### SERIAL PORT SIGNALS

RS-232 は直列通信の為に最も普通に使用される標準的電気的相互交換手段である｡負電圧(-3V～-12V)が印あり(接=1)ビットを定義し､正電圧(+3V～+12V)が空白(断=0)ビットを定義する(RS-232C)｡次の信号が､入力と出力データ､状態線､相互握手方式を指定する｡此処で､用語として電脳装置を貴兄の計算機に､変復調装置を外部機器に使用する､理由は幾つかの信号の名前は変復調装置に由来するから｡無論外部機器は他の目的の信号線に使用しても一向に構わない｡ RS-232 is the most commonly used standard electrical interface for serial communications. A negative voltage (-3V..-12V) define a mark (on=1) bit and a positive voltage (+3..+12V) define a space (off=0) bit (RS-232C). The following signals are specified for incoming and outgoing data, status lines and handshaking. Here we are using the terms workstation for your computer and modem for the external device, because some signal names (DCD, RI) come from modems. Of course your external device may use these signal lines for other purposes.

TXD (output)
  送信されたデータ:外向きの直列データ Transmitted Data: Outgoing serial data.

RXD (input)
  受取ったデータ:内向きの直列データ. Received Data:Incoming serial data.

RTS (output)
  送信要求: この装置系の相互握手方式線は､変復調装置に貴兄の電脳装置が受信の準備ができたことを告げる｡電脳装置は入力緩衝域が一杯になったことを示す為に自動的にこの信号を組直すかもしれない｡ Request To Send: This hardware handshake line informs the modem that your workstation is ready to receive data. Your workstation may automatically reset this signal to indicate that the input buffer is full.

CTS (input)
  Clear To Send: RTSの相補｡変復調装置がデータを受取る準備ができたことを示す｡ Clear To Send: The complement to RTS. Indicates that the modem is ready to receive data.

DTR (output)
  データ端末準備完了: この信号は､電脳装置が連結を確立する準備が整った旨を変復調装置に伝える｡DTR は､直列入力端子が開いた時は何時でも､しばしば自動的に活動化される｡ Data Terminal Ready: This signal tells the modem that the workstation is ready to establish a link. DTR is often enabled automatically whenever a serial port is opened.

DSR (input)
  Data Set Ready: DTRの相補｡変復調装置が連結を確立する準備が整った旨を変復調装置に伝える｡ Data Set Ready: The complement to DTR. Tells the workstation that the modem is ready to establish a link.

DCD (input)
  搬送波検知: 変復調装置が “搬送波” 信号を検知した時にこの線が活性になる｡ Data Carrier Detect: This line becomes active when a modem detects a “Carrier” signal.

RI (input)
  被呼表示: 変復調装置が入力呼出しを検知すると活性になる｡ Ring Indicator: Goes active when the modem detects an incoming call.

BREAK
  切断条件は､装置系の信号線ではなく､ TXD か RXD 線の､長期間の､通常､千分の250から500 秒の論理的零である｡通常､受信又は､次の信号が送られる迄､送信データは印有り水準(接=1)に留まる｡切断は､時には､通信線の組み直し又は､通信装置系の操作方法の変更に使用される｡ A BREAK condition is not a hardware signal line, but a logical zero on the TXD or RXD lines for a long period of time, usually 250 to 500 milliseconds. Normally a receive or transmit data signal stays at the mark (on=1) voltage until the next character is transferred. A BREAK is sometimes used to reset the communications line or change the operating mode of communications hardware.

#### ERROR CODES (Windows only)

直列読み取り操作や､背景処理の行事巡回の間に多くの異なった不具合が生じ得る｡外部装置の電源が切れたり､データ線に雑音が多かったり､系の緩衝領域が溢れたり､様式の設定が変だったりする｡何故､信頼性のある譜が常に直列読込み操作を監視しているかの理由である｡不具合があると､ Tcl は一般ファイル不具合を返す｡次に､ fconfigure -lasterror が障害の場所特定の手助けになる｡次の不具合番号が返って来る｡ A lot of different errors may occur during serial read operations or during event polling in background. The external device may have been switched off, the data lines may be noisy, system buffers may overrun or your mode settings may be wrong. That is why a reliable software should always catch serial read operations. In cases of an error Tcl returns a general file I/O error. Then fconfigure -lasterror may help to locate the problem. The following error codes may be returned.

RXOVER
  窓の入力緩衝域溢れ｡実行記述譜の読込みよりデータが早いか､系の過負荷か｡ fconfigure -sysbuffer を使って､当面の隘路を避ける そして/又は 実行譜の速度を上げるべき｡ Windows input buffer overrun. The data comes faster than your scripts reads it or your system is overloaded. Use fconfigure -sysbuffer to avoid a temporary bottleneck and/or make your script faster.

TXFULL
  窓の出力緩衝域溢れ｡RXOVER の相補｡Tcl が出力緩衝域の状態を監視しているので､この不具合は実質上発生しない｡ Windows output buffer overrun. Complement to RXOVER. This error should practically not happen, because Tcl cares about the output buffer status.

OVERRUN
  データ損失を伴うUART 緩衝域溢れ(装置系)｡系の入力専用譜の受入れより速くデータが届く｡高級直列入力端子の設定を FIFO (16550) 緩衝可能にする 更に/又は 入力割込み基準値をlower(1)の値に設定するべき｡ UART buffer overrun (hardware) with data lost. The data comes faster than the system driver receives it. Check your advanced serial port settings to enable the FIFO (16550) buffer and/or setup a lower(1) interrupt threshold value.

RXPARITY
  UARTにより偶奇確認不具合が検出された｡ fconfigure -mode による偶奇確認設定の不良や､信号線 (RXD) の雑音がこの不具合を引起しうる｡ A parity error has been detected by your UART. Wrong parity settings with fconfigure -mode or a noisy data line (RXD) may cause this error.

FRAME
  UARTにより停止ビット不具合が検出された｡ fconfigure -mode による停止ビット設定の不良や､信号線 (RXD) の雑音がこの不具合を引起しうる｡ A stop-bit error has been detected by your UART. Wrong mode settings with fconfigure -mode or a noisy data line (RXD) may cause this error.

BREAK
  UARTにより切断状態が検出された(上を参照されたい)｡ A BREAK condition has been detected by your UART (see above).

#### PORTABILITY ISSUES

Windows
  直列入力端子を開ける為の fileName に対する適正な値は comX の形式であって､ X は数値で一般に１から9である｡旧来からの comX: の形式も受入れ可能である｡この表記は直列入力端子の１から9 迄しか動かない｡実在しない直列入力端子や9番を超える番号を指定しようとすると失敗する｡直列入力端子を開ける別の形式は､ファイル名 //./comX の使用である､ここで X は直列入力端子に相当する任意の番号である｡ Valid values for fileName to open a serial port are of the form com X, where X is a number, generally from 1 to 9. A legacy form accepted as well is com X:. This notation only works for serial ports from 1 to 9. An attempt to open a serial port that does not exist or has a number greater than 9 will fail. An alternate form of opening serial ports is to use the filename //./comX, where X is any number that corresponds to a serial port.

  対話的に Tcl が実行されている時､命令パイプラインが標準入力又は､出力に使われると､実際の黒窓との間の幾つかの奇妙な干渉がありうる｡命令パイプラインが読込みに開かれ､幾つかの行が黒窓に入力されると､窓に入力された幾つかの行はパイプラインに送られ､幾つかが Tcl 評価機能に送られる｡もし､命令パイプラインが書込みに開かれると､パイプが閉じられる迄､黒窓に入力される鍵入力が見えなくなる｡この問題はTclと子供の応用譜の両方が同時に黒窓で競争する為に生じる｡もし､命令パイプラインが記述譜から始まると､Tcl が黒窓を利用しないので､又は､もし入出力先がファイルに変更され､命令パイプラインが標準入力又は出力を使用しないと､上記問題は起らない｡ When running Tcl interactively, there may be some strange interactions between the real console, if one is present, and a command pipeline that uses standard input or output. If a command pipeline is opened for reading, some of the lines entered at the console will be sent to the command pipeline and some will be sent to the Tcl evaluator. If a command pipeline is opened for writing, keystrokes entered into the console are not visible until the pipe is closed. These problems only occur because both Tcl and the child application are competing for the console at the same time. If the command pipeline is started from a script, so that Tcl is not accessing the console, or if the command pipeline does not use standard input or output, but is redirected from or to a file, then the above problems do not occur.

  “a” 様式､又は APPEND 旗徴設定で開かれるファイルはそれぞれの書込みの直前に直ちに捜索される､それは単独の操作ではなく､且つ､ POSIX 式OS上に存在することをそのまま追記することの保障もない｡ 　 Files opened in the “a” mode or with the APPEND flag set are implemented by seeking immediately before each write, which is not an atomic operation and does not carry the guarantee of strict appending that is present on POSIX platforms.

Unix
  直列入力端子を開ける為の fileName に対する適正な値は/dev/ttyX であって､ここで､ X は a か b であるが､直列入力端子に対応するどのような擬似ファイル名でも使用できる｡直列入力端子に対する高度構成設定指示項目は､Tclが､ POSIX 直列相互干渉機能を使って総機械語変換された時にのみ運用される｡ Valid values for fileName to open a serial port are generally of the form /dev/tty X, where X is a or b, but the name of any pseudo-file that maps to a serial port may be used. Advanced configuration options are only supported for serial ports when Tcl is built to use the POSIX serial interface.

  対話的に Tcl が実行されている時､実際の黒窓との間の幾つかの奇妙な干渉がありうる､もし一つが存在し､命令パイプラインが標準入力に使われると｡もし､命令パイプラインが読込みに開かれ､幾つかの行が黒窓に入力された幾つかの行がパイプラインに送られ､幾つかがTcl評価機能に送られる｡この問題はTclと子供の応用譜が同時に黒窓で競争する時にのみ生じる｡もし､命令パイプラインが記述譜から始まり､そこで､Tcl が黒窓を利用しない､又は､もし命令パイプラインが標準入力を使用しない､しかし､入出力先をファイルに変更すると上記問題は起らない｡ When running Tcl interactively, there may be some strange interactions between the console, if one is present, and a command pipeline that uses standard input. If a command pipeline is opened for reading, some of the lines entered at the console will be sent to the command pipeline and some will be sent to the Tcl evaluator. This problem only occurs because both Tcl and the child application are competing for the console at the same time. If the command pipeline is started from a script, so that Tcl is not accessing the console, or if the command pipeline does not use standard input, but is redirected from a file, then the above problem does not occur.

種々のOS上で応用譜を実行することに関して､命令パイプラインに特化しない追加的な情報については exec 命令の PORTABILITY ISSUES の項を参照されたい｡ See the PORTABILITY ISSUES section of the exec command for additional information not specific to command pipelines about executing applications on the various platforms

### CONSOLE CHANNELS

Windows のみ､黒窓通信路(通常は stdin か stdout)は次の指示項目を運営する: On Windows only, console channels (usually stdin or stdout) support the following options:

-inputmode inputMode
  この指示項目は､使用者からの対話的入力をを処理する方法を制御している黒窓経路の入力様式を問合せ又は変更することに使う｡入力様式については次の値が運営されている: This option is used to query or change the input mode of the console channel, which controls how interactive input from users is handled. The following values for inputMode are supported:

  normal
    校正能力が可能な標準的黒窓を伴って､通常の行-志向入力が使われる事を指し示す｡ indicates that normal line-oriented input should be used, with standard console editing capabilities enabled.

  password
    校正能力が可能だが､端末に打鍵された文字を(改行以外は)書かない､標準的端末で､復唱なしの入力が使われることを指し示す｡ indicates that non-echoing input should be used, with standard console editing capabilities enabled but no writing of typed characters to the terminal (except for newlines).

  raw
    全ての打鍵入力は直接 Tcl に与えられ､黒窓では全く何も処理しない｡打鍵に復唱しない､何をしているか解釈することは Tcl 記述譜に任せる｡ indicates that all keyboard input should be given directly to Tcl with the console doing no processing at all. It does not echo the keys, leaving it up to the Tcl script to interpret what to do.

  reset (set only)
    黒窓は､黒窓通信路が開かれた時の状態に刷新されることを指し示す｡ indicates that the console should be reset to what state it was in when the console channel was opened.

  註意すべきは､この指示項目の設定は(技術的に､この指示項目経由でその初期値から黒窓状態を何でも変更する)､通信路に通信路が閉鎖された時に黒窓の自動刷新を是にすることを惹き起こす｡ Note that setting this option (technically, anything that changes the console state from its default via this option) will cause the channel to turn on an automatic reset of the console when the channel is closed.

-winsize
  この指示項目は問合せのみ｡黒窓の現在の巾と高さの､要素二つのリストを取り出す｡ This option is query only. It retrieves a two-element list with the current width and height of the console that this channel is talking to.

註意すべきは､等価な指示項目が Unix にあるが､直列通信路型のみである｡ Note that the equivalent options exist on Unix, but are on the serial channel type.

### EXAMPLES

書込み用に､強制的に創生させ､既に実在する場合には不都合を生じさせて､ファイルを開ける｡ 　 Open a file for writing, forcing it to be created and raising an error if it already exists.

    set myNewFile [open filename.txt {WRONLY CREAT EXCL}]

日誌ファイルとして書込み用にファイルを開ける｡ Open a file for writing as a log file.

    set myLogFile [open filename.log "a"]
    fconfigure $myLogFile -buffering line

命令パイプラインを開け､何であれ不都合を捕捉する: Open a command pipeline and catch any errors:

    set fl [open "| ls this_file_does_not_exist"]
    set data [read $fl]
    if {[catch {close $fl} err]} {
        puts "ls command failed: $err"
    }

命令パイプラインを開け､そこから二進データを読み出す｡注意､ “|[list” を伴う風変りな形式に注意されたい､それは､中に空白があり得る引数を伴う重要な極端な場合を取扱う｡ Open a command pipeline and read binary data from it. Note the unusual form with “|[list” that handles non-trivial edge cases with arguments that potentially have spaces in.

    set fl [open |[list create_image_data $input] "rb"]
    set binData [read $fl]
    close $fl

使用者から安全に暗証番号を読み出す(記述譜が対話的に実行されていることを仮定する): Read a password securely from the user (assuming that the script is being run interactively):

    chan configure stdin -inputmode password
    try {
        chan puts -nonewline "Password: "
        chan flush stdout
        set thePassword [chan gets stdin]
    } finally {
        chan configure stdin -inputmode reset
    }

### SEE ALSO

file, close, filename, fconfigure, gets, read, puts, exec, pid, fopen

### KEYWORDS

access mode, append, create, file, non-blocking, open, permissions, pipeline, process, serial
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.