<!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- платформах символ новой строки используется в файлах, в то время как для сетевых соединений используется последовательность "возврат каретки - новая строка". При вводе данных (например, при исполнении команд <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> В качестве символа конца строки используется последовательность "возврат каретки - новая строка" (<strong>crlf</strong>). Соответственно, при вводе последовательность "возврат каретки - новая строка" преобразуется в символ новой строки, а при выводе, наоборот, символ новой строки преобразуется в последовательность "возврат каретки - новая строка". Это значение опции используется обычно на 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>