66 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>puts</title>
 | ||
|   </head>
 | ||
| 
 | ||
|   <body>
 | ||
|     <h1>puts</h1>
 | ||
| 
 | ||
|     <p>Команда записывает данные в канал.</p>
 | ||
| 
 | ||
|     <h2>СИНТАКСИС</h2>
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>puts</strong> ?<strong>-nonewline</strong>? ?<em>channelId</em>? <em>string</em>
 | ||
|     </pre>
 | ||
|     
 | ||
|     <h2>ОПИСАНИЕ</h2>
 | ||
| 
 | ||
|     <p>Записывает символы из аргумента <em>string</em> в канал
 | ||
|       <em>channelId</em>. Значение <em>channelId</em> должно быть
 | ||
|       идентификатором канала, который вернула предыдущая команда <a
 | ||
|       href=open.html><strong>open</strong></a> или <a href=
 | ||
|       socket.html><strong>socket</strong></a>. Соответствующий канал
 | ||
|       должен быть открыт на запись. Если аргумент <em>channelId</em> не
 | ||
|       указан, значение по умолчанию соответствует стандартному
 | ||
|       выводу. Команда <strong>puts</strong> обычно выдает после <em>string</em>
 | ||
|       символ новой строки, однако, если указана опция
 | ||
|       <strong>-nonewline</strong>, этого не происходит.</p>
 | ||
| 
 | ||
|     <p>Символы новой строки при выводе заменяются на
 | ||
|       последовательность, используемую на данной платформе (например,
 | ||
|       <strong>cr</strong> <strong>lf</strong> на Windows-платформах) в соответствии со
 | ||
|       значением опции канала <strong>-translation</strong>. Опция может быть
 | ||
|       изменена с помощью команды <a href=
 | ||
|       fconfigure.html><strong>fconfigure</strong></a>.</p>
 | ||
| 
 | ||
|     <p>Tcl осуществляет вывод через буфер. Поэтому символы, выданные
 | ||
|       командой <strong>puts</strong>, могут и не появиться сразу в выходном
 | ||
|       устройстве или в файле. Обычно вывод откладывается до заполнения
 | ||
|       буфера или закрытия канала. Чтобы обеспечить немедленную выдачу
 | ||
|       данных, можно использовать команду <a
 | ||
|       href=flush.html><strong>flush</strong></a>.</p>
 | ||
| 
 | ||
|     <p>Когда буфер заполнится, команда <strong>puts</strong> обычно блокирует
 | ||
|       процесс до тех пор, пока все данные не будут переданы
 | ||
|       операционной системе для дальнейшего вывода. Если канал
 | ||
|       <em>channelId</em> открыт в неблокирующем режиме, процесс не
 | ||
|       блокируется, даже если операционная система еще не приняла
 | ||
|       данные. Tcl в этом случае продолжает складывать данные в буфер и
 | ||
|       в фоновом режиме передает их в соответствующий файл или
 | ||
|       устройство с той скоростью, с которой они могут принять
 | ||
|       данные. Чтобы работа в неблокирующем режиме была возможна,
 | ||
|       необходимо, чтобы был запущен обработчик событий.</p>
 | ||
| 
 | ||
|     <p>При работе в неблокирующем режиме возможен рост буфера, под
 | ||
|       который будет выделен неоправданно большой объем памяти.  Чтобы
 | ||
|       избежать этого, неблокирующие операции ввода/вывода лучше делать
 | ||
|       управляемыми по событиям. При этом новая порция данных не будет
 | ||
|       передаваться в буфер, пока канал не будет готов к ее приему.</p>
 | ||
| 
 | ||
|   </body>
 | ||
| </html>
 | ||
| 
 | ||
| 
 | 
