<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
  <head>
    <title>fconfigure</title>
  </head>
  <body>
    <h1>fconfigure</h1>

    <p> <strong>fconfigure</strong> - устанавливает и читает опции канала. </p>

    <pre>
      <strong>fconfigure</strong> <em>channelId</em> 
      <strong>fconfigure</strong> <em>channelId</em> <em>name</em>
      <strong>fconfigure</strong> <em>channelId</em> <em>name</em> <em>value</em> ?<em>name</em> <em>value</em>...?
    </pre>

    <h2>ОПИСАНИЕ</h2> 

    <p>Команда <strong>fconfigure</strong> устанавливает и читает опции
      каналов. Аргумент <em>channelId</em> определяет конкретный канал,
      с которым работает команда. Если аргументы <em>name</em> и
      <em>value</em> отсутствуют, команда возвращает список, содержащий
      поочередно имена опций и их значения для канала.  Если имя опции
      указано, а значение - нет, команда возвращает текущее значение
      указанной опции. Если в команде указаны одна или больше пар имен
      и значений, то команда устанавливает каждой из перечисленных
      опций указанное значение. В этом случае команда возвращает
      пустую строку.</p>
    
    <p>Описанные ниже опции поддерживаются для всех типов каналов.
      Кроме того, каждый тип канала может иметь дополнительно
      собственные опции. Они приведены в описаниях команд создания
      каналов, например, в описании команды <a
      href=socket.html><strong>socket</strong></a>.</p>

    <dl>
      <dt> <strong>-blocking</strong> <em>boolean</em> </dt>

      <dd> Опция <em>-blocking</em> определяет, вызывают ли команды
        ввода/вывода блокировку процесса. Величина этой опции должна
        быть правильным булевым выражением. Обычно каналы открываются
        в блокирующем режиме. Если канал переведен в неблокирующий
        режим, это окажет влияние на выполнение команд <a
        href=gets.html><strong>gets</strong></a>, <a
        href=read.html><strong>read</strong></a>, <a
        href=puts.html><strong>puts</strong></a>, <a
        href=flush.html><strong>flush</strong></a> и <a
        href=close.html><strong>close</strong></a> (смотри описание
        соответствующих команд). Чтобы работа в неблокирующем режиме
        выполнялась корректно, в приложении должен быть запущен
        обработчик событий (например, с помощью команды <a
        href=vwait.html><strong>vwait</strong></a>).
      </dd>
      
      <dt><strong>-buffering</strong> <em>newValue</em></dt>

      <dd><p>Если аргумент <em>newValue</em> равен <strong>full</strong>, система
	  ввода-вывода будет накапливать вывод в буфере, пока буфер не
	  заполнится целиком. После этого буфер будет выдан в канал.</p>

	<p>Если аргумент <em>newValue</em> равен <strong>line</strong>, система
	  ввода-вывода будет выдавать буфер в канал каждый раз при
	  поступлении символа конца строки. </p>

	<p>Если аргумент <em>newValue</em> равен <strong>none</strong>, система
	  ввода-вывода будет выводить каждый символ сразу после его
	  поступления.</p>

	<p>Значение по умолчанию <strong>full</strong> для всех каналов, кроме
	  устройств типа терминалов. Для них значение по умолчанию
	  <strong>line.</strong></p>
      </dd>

      <dt><strong>-buffersize</strong> <em>newSize</em></dt>

      <dd>Аргумент <em>newSize</em> должен быть целым числом. Его
        значение определяет размер буфера (в байтах), используемый для
        данного канала. Величина <em>newSize</em> должна быть в пределах
        от десяти до миллиона, что позволяет задавать величину буфера
        от десяти до миллиона байт.
      </dd>
      
      <dt><a name=eofchar></a><strong>-eofchar</strong> <em>char</em> </dt>

      <dt><strong>-eofchar</strong> {<em>inChar</em> <em>outChar</em>}</dt>

      <dd> Эти опции поддерживают структуру файлов DOS, в которой
        символ Control-z (\x1a) используется как символ конца
        файла. Если аргумент <em>char</em> не равен пустой строке, то
        этот символ, если он встречается во вводе, означает конец
        файла. При выводе информации символ конца файла выдается при
        закрытии канала. Если аргумент <em>char</em> равен пустой
        строке, то специальный символ конца файла отсутствует. Для
        каналов ввода-вывода элементы списка {<em>inChar</em>
        <em>outChar</em>} определяют символы конца файла для ввода и
        вывода соответственно. Пользователь может указать в списке
        единственный символ, который будет использоваться и для ввода,
        и для вывода. Однако, при запросе команда возвратит текущие
        установки в виде списка из двух одинаковых элементов. Значения
        по умолчанию для символов конца файла - пустая строка всегда,
        кроме файлов Windows. В этом случае <em>inChar</em> равно
        Control-z (\x1a), <em>outChar</em> - пустой строке.
      </dd>

      <dt><strong>-translation</strong> <em>mode</em> </dt>

      <dt><strong>-translation</strong> <em>{inMode outMode}</em></dt>

      <dd><p>В Tcl-скриптах конец строки всегда представляется
	  единственным символом новой строки (
). Однако, в реальных
	  файлах и устройствах конец строки может быть представлен
	  разными символами или наборами символов в зависимости от
	  используемой платформы или даже конкретного устройства.
	  Например, на UNIX- платформах символ новой строки
	  используется в файлах, в то время как для сетевых соединений
	  используется последовательность &quot;возврат каретки -
	  новая строка&quot;. При вводе данных (например, при
	  исполнении команд <a href=gets.html><strong>gets</strong></a>
	  или <a href=read.html><strong>read</strong></a>) система ввода -
	  вывода Tcl сама автоматически преобразует внешнее
	  представление конца строк во внутреннее представление
	  (символ новой строки). При выводе (например, при команде <a
	  href= puts.html><strong>puts</strong></a>) также происходит
	  преобразование ко внешнему формату представления конца
	  строки. Значение аргумента по умолчанию равно <strong>auto</strong>.
	  При этом символы конца строки для большинства ситуаций
	  правильно определяются автоматически. Однако, опция
	  <strong>-translation</strong> позволяет при необходимости задать
	  соответствующие символы в явном виде.</p>

	<p>Аргумент <em>mode</em> задает представление конца строки для
	  каналов, открытых только на чтение или только на
	  запись. Список {<em>inMode</em> <em>outMode</em>} определяет
	  представление конца строки для каналов ввода - вывода.
	  Пользователь может указать в списке единственный символ,
	  который будет использоваться и для ввода, и для вывода.
	  Однако, при запросе команда возвратит текущие установки в
	  виде списка из двух одинаковых элементов.</p>
	
	<p>Поддерживаются следующие значения опции:</p>
        <dl>
	  <dt> <strong>auto</strong> </dt>
	  
          <dd> При вводе в качестве конца строки могут использоваться
            символ возврата каретки (<strong>cr</strong>), символ новой строки
            (<strong>lf</strong>), или их последовательность
            (<strong>crlf</strong>). Причем разные строки могут заканчиваться
            по-разному. Все эти представления будут переведены в
            символ новой строки. При выводе используется разное
            представление для различных платформ и каналов. Для
            сетевых соединений на всех платформах используется
            <strong>crlf</strong>, для всех Unix- платформ - <strong>lf</strong>, для
            Macintosh - <strong>cr</strong>, а для всех Windows-платформ -
            <strong>crlf</strong>.
          </dd>

	  <dt><strong>binary</strong></dt>
	  
          <dd> Никакого преобразования символов конца строки не
            производится. Это значение опции очень схоже со значением
            <strong>lf</strong>, однако, при значении <strong>binary</strong> пустая
            строка воспринимается как конец файла (см. описание опции
            <a href=#eofchar><strong>-eofchar</strong></a>).
          </dd>
	  
	  <dt><strong>cr</strong></dt>

	  <dd> В качестве символа конца строки используется возврат
            каретки (<strong>cr</strong>). Соответственно, при вводе символ
            возврата каретки преобразуется в символ новой строки, а
            при выводе, наоборот, символ новой строки преобразуется в
            символ возврата каретки. Это значение опции используется,
            обычно, на Macintosh-платформах.
          </dd>

	  <dt><strong>crlf</strong></dt>

	  <dd> В качестве символа конца строки используется
            последовательность &quot;возврат каретки - новая
            строка&quot; (<strong>crlf</strong>). Соответственно, при вводе
            последовательность &quot;возврат каретки - новая
            строка&quot; преобразуется в символ новой строки, а при
            выводе, наоборот, символ новой строки преобразуется в
            последовательность &quot;возврат каретки - новая
            строка&quot;.  Это значение опции используется обычно на
            Windows-платформах и при сетевых соединениях.
          </dd>

	  <dt><strong>lf</strong></dt>

	  <dd> В качестве символа конца строки используется символ
            новой строки (<strong>lf</strong>). Никакого преобразования символов
            конца строки при вводе и выводе не происходит.  Это
            значение опции используется, обычно, на UNIX-платформах.
          </dd>
        </dl>
      </dd>
    </dl>

    <p>См. также <a href=close.html><strong>close</strong></a>(n), <a
      href=flush.html><strong>flush</strong></a>(n), <a href=
      gets.html><strong>gets</strong></a>(n), <a
      href=puts.html><strong>puts</strong></a>(n), <a
      href=read.html><strong>read</strong></a>(n), <a
      href=socket.html><strong>socket</strong></a>(n)
    </p>

  </body>
</html>