268 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>open</title>
 | ||
|   </head>
 | ||
| 
 | ||
|   <body>
 | ||
|     <h1>open</h1>
 | ||
| 
 | ||
|     <p>Открывает канал для связи с файлом или программой.</p>
 | ||
| 
 | ||
|     <h2>СИНТАКСИС</h2>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>open</strong> <em>fileName</em> 
 | ||
|       <strong>open</strong> <em>fileName</em> <em>access</em>
 | ||
|       <strong>open</strong> <em>fileName</em> <em>access</em> <em>permissions</em>
 | ||
|     </pre>
 | ||
| 
 | ||
|     <h2>ОПИСАНИЕ</h2> 
 | ||
| 
 | ||
|     <p>Эта команда открывает файл, последовательный порт или командный
 | ||
|       конвейер и возвращает идентификатор канала, который может
 | ||
|       использоваться в дальнейшем в таких командах, как <a
 | ||
|       href=read.html><strong>read</strong></a>, <a
 | ||
|       href=puts.html><strong>puts</strong></a> и <a
 | ||
|       href=close.html><strong>close</strong></a>.  Если первый символ
 | ||
|       атрибута <em>fileName</em> не равен <strong>|</strong>, то команда отрывает
 | ||
|       файл <em>fileName</em>, соответственно значение аргумента fileName
 | ||
|       должно соответствовать обычным соглашениям, описанным в п. <a
 | ||
|       href=filename.html><strong>filename</strong></a>.</p>
 | ||
| 
 | ||
|     <p>Аргумент <em>access</em>, если он используется, указывает
 | ||
|       разрешенные режимы доступа к файлу. Аргумент <em>access</em> может
 | ||
|       указываться в одной из двух нотаций. В первой он может иметь
 | ||
|       следующие значения:</p>
 | ||
| 
 | ||
|     <table cellpadding=7 width=85%>
 | ||
| 	<tr>
 | ||
| 	  <td><strong>r</strong></td>
 | ||
| 	  
 | ||
| 	  <td>Открывает файл только на чтение. Это значение по умолчанию.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>r+</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл на чтение и запись. Файл должен
 | ||
| 	    существовать.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>w</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл только на запись. Удаляет содержимое
 | ||
|               файла, если он существовал. Если нет, то создает новый
 | ||
|               файл.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>w+</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл на чтение и запись. Удаляет содержимое
 | ||
|               файла, если он существовал. Если нет, то создает новый
 | ||
|               файл.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>a</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл на чтение. Файл должен
 | ||
| 	  существовать. Новые данные записываются в конец файла.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>a+</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл на чтение и запись. Если файл не
 | ||
|               существует, создает новый файл. Новые данные
 | ||
|               записываются в конец файла.</td>
 | ||
| 	</tr>
 | ||
|     </table>
 | ||
| 
 | ||
|     <p>Во второй нотации аргумент <em>access</em> может содержать набор
 | ||
|       из флагов, описанных ниже. Среди флагов обязательно должен быть
 | ||
|       один из следующих: <strong>RDONLY</strong>, <strong>WRONLY</strong> или
 | ||
|       <strong>RDWR</strong>.</p>
 | ||
| 
 | ||
|     <table>
 | ||
| 	<tr>
 | ||
| 	  <td><strong>RDONLY</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл только на чтение.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>WRONLY</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл только на запись</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>RDWR</strong></td>
 | ||
| 
 | ||
| 	  <td>Открывает файл на чтение и запись.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>APPEND</strong></td>
 | ||
| 
 | ||
| 	  <td>Переставляет указатель в конец файла перед каждой
 | ||
|               записью.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>CREAT</strong></td>
 | ||
| 
 | ||
| 	  <td>Создает файл, если он не существует. Без этого флага
 | ||
|               попытка открыть несуществующий флаг приведет к
 | ||
|               ошибке.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>EXCL</strong></td>
 | ||
| 
 | ||
| 	  <td>Если указан также флаг <strong>CREAT</strong>, то будет
 | ||
|               сгенерирована ошибка, если файл уже существует.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>NOCTTY</strong></td>
 | ||
| 
 | ||
| 	  <td>Если файл открыт для терминального устройства, этот флаг
 | ||
|               не позволяет ему стать управляющим терминалом
 | ||
|               процесса.</td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>NONBLOCK</strong></td>
 | ||
| 
 | ||
| 	  <td>Позволяет в неблокирующем режиме открыть файл и,
 | ||
|               возможно, выполнять в этом режиме последующие операции
 | ||
|               ввода/вывода. Последствия использования этого флага
 | ||
|               зависят от платформы и устройства. Предпочтительнее
 | ||
|               вместо него использовать команду <a href=
 | ||
|               fconfigure.html><strong>fconfigure</strong></a>. Конкретные
 | ||
|               особенности использования флага описаны в руководстве по
 | ||
|               вашей операционной системе, системный вызов <a
 | ||
|               href=open.html><strong>open</strong></a>, флаг <strong>
 | ||
|               O_NONBLOCK</strong>.
 | ||
| 	  </td>
 | ||
| 	</tr>
 | ||
| 
 | ||
| 	<tr>
 | ||
| 	  <td><strong>TRUNC</strong></td>
 | ||
| 
 | ||
| 	  <td>Если файл существует, то его содержимое удаляется.</td>
 | ||
| 	</tr>
 | ||
|     </table>
 | ||
| 
 | ||
|     <p>Если файл создается при выполнении команды <strong>open</strong>, то
 | ||
|       аргумент <em>permissions</em> (целое число) используется для
 | ||
|       установки прав доступа к вновь созданному файлу. Значение по
 | ||
|       умолчанию <strong>0666</strong>.</p>
 | ||
| 
 | ||
|     <h2><a name=КОМАНДНЫЙ КОНВЕЙЕР></a>КОМАНДНЫЙ КОНВЕЙЕР</h2>
 | ||
| 
 | ||
|     <p>Если первый символ в <em>fileName</em> <strong>|</strong>'', то
 | ||
|       считается, что остальные символы описывают командный конвейер,
 | ||
|       который запускается так же, как командой <strong><a
 | ||
|       href=exec.html>exec</a></strong>. В этом случае идентификатор
 | ||
|       открытого канала может использоваться для ввода информации в
 | ||
|       стандартный ввод запущенного конвейера или для чтения его
 | ||
|       стандартного вывода в зависимости от значения аргумента
 | ||
|       <em>access</em>. Если канал открыть только на запись, то
 | ||
|       стандартный вывод конвейера направляется на текущий стандартный
 | ||
|       вывод (если он не перенаправлен в конвейере).  Если канал открыт
 | ||
|       только на чтение, стандартный ввод для конвейера берется из
 | ||
|       текущего стандартного ввода (если он не перенаправлен в
 | ||
|       конвейере).</p>
 | ||
|     
 | ||
|     <h2><a name=ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ></a>ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ</h2>
 | ||
| 
 | ||
|     <p>Если аргумент <em>fileName</em> указывает на параллельный порт,
 | ||
|       то соответствующий порт открывается и инициализируется (реальные
 | ||
|       действия в зависимости от платформы). Допустимые значения
 | ||
|       <em>fileName</em> для различных платформ см. <a href=
 | ||
|       #ОСОБЕННОСТИ РЕАЛИЗАЦИИ НА РАЗЛИЧНЫХ ПЛАТФОРМАХ>
 | ||
|       Особенности реализации на различных платформах</a>.</p>
 | ||
|     
 | ||
|     <h2><a name=КОНФИГУРИРОВАНИЕ></a>КОНФИГУРИРОВАНИЕ</h2>
 | ||
| 
 | ||
|     <p>Команда <strong><a href=fconfigure.html>fconfigure</a></strong> может
 | ||
|       быть использована для определения и изменения текущей
 | ||
|       конфигурации канала. Для последовательного порта можно
 | ||
|       использовать следующие опции.</p>
 | ||
| 
 | ||
|     <p><strong>-mode</strong>
 | ||
|       <em>baud</em>,<em>parity</em>,<em>data</em>,<em>stop</em></p>
 | ||
| 
 | ||
|     <p>Эта опция включает 4 величины, записанные через запятую.</p>
 | ||
| 
 | ||
|     <p><em>baud</em> - число, скорость передачи данных в Бодах (бит
 | ||
|       в секунду);</p>
 | ||
| 
 | ||
|     <p><em>parity</em> - четность, может принимать одно из значений
 | ||
|       <strong>n</strong> (none), <strong>o</strong> (odd), <strong>e</strong> (even), <strong>m</strong>
 | ||
|       (mark), <strong>s</strong> (space);</p>
 | ||
| 
 | ||
|     <p><em>data</em> - число бит данных (целое от 5 до 8);</p>
 | ||
| 
 | ||
|     <p><em>stop</em> - число стоп битов (целое 1 или 2).</p>
 | ||
| 
 | ||
|     <h2><a name=ОСОБЕННОСТИ РЕАЛИЗАЦИИ НА РАЗЛИЧНЫХ ПЛАТФОРМАХ></a>
 | ||
|       ОСОБЕННОСТИ РЕАЛИЗАЦИИ НА РАЗЛИЧНЫХ ПЛАТФОРМАХ</h2>
 | ||
| 
 | ||
|     <dl>
 | ||
|       <dt><strong>Windows</strong> (все версии)</dt>
 | ||
| 
 | ||
|       <dd>Аргумент <em>fileName</em> для сериальных портов должен иметь
 | ||
| 	форму <strong>comX</strong>, где <em>X</em> - число (обычно, от 1 до
 | ||
| 	4). Попытка открыть несуществующий порт приводит к
 | ||
| 	ошибке.</dd>
 | ||
| 
 | ||
|       <dt><strong>Windows NT</strong></dt>
 | ||
| 
 | ||
|       <dd>Проблемы могут возникать при интерактивном выполнении Tcl,
 | ||
| 	поскольку в этом случае консоль используется и для Tcl, и для
 | ||
| 	порожденного подпроцесса.</dd>
 | ||
| 
 | ||
|       <dt><strong>Windows 95</strong></dt>
 | ||
| 
 | ||
|       <dd><p>Сложности при работе с 16-битовыми DOS-приложениями.</p>
 | ||
| 
 | ||
| 	<p>Также проблемы могут возникать при интерактивном выполнении
 | ||
| 	  Tcl, поскольку в этом случае консоль используется и для Tcl,
 | ||
| 	  и для порожденного подпроцесса.</p>
 | ||
| 	</dd>
 | ||
| 
 | ||
|       <dt><strong>Windows 3.X</strong></dt>
 | ||
| 
 | ||
|       <dd>Те же проблемы, что и при выполнении команды <a
 | ||
| 	href=exec.html><strong>exec</strong></a>.</dd>
 | ||
| 
 | ||
|       <dt><strong>Macintosh</strong></dt>
 | ||
| 
 | ||
|       <dd><p>Открытие последовательного порта не поддерживается.</p>
 | ||
| 	<p>Открытие командного конвейера также не поддерживается.</p>
 | ||
|       </dd>
 | ||
| 
 | ||
|       <dt><strong>Unix</strong></dt>
 | ||
| 
 | ||
|       <dd><p>Обычно для открытия последовательного порта используется
 | ||
| 	  значение <em>fileName</em> <strong>/dev/ttyX</strong>, где <em>X</em>
 | ||
| 	  равно <strong>a</strong> или <strong>b</strong>, но можно также использовать
 | ||
| 	  любой псевдофайл, назначенный на соответствующий порт.</p>
 | ||
| 	
 | ||
| 	<p>Проблемы могут возникать при интерактивном выполнении Tcl,
 | ||
| 	  поскольку в этом случае консоль используется и для Tcl, и
 | ||
| 	  для порожденного подпроцесса.</p>
 | ||
|       </dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|   </body>
 | ||
| </html>
 | ||
| 
 | ||
| 
 | 
