MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Tcl Built-In Commands                                fblocked(1T)





NAME
     fblocked - Test whether the last input  operation  exhausted
     all available input

SYNOPSIS
     fblocked channelId



DESCRIPTION
     The fblocked command returns 1  if  the  most  recent  input
     operation   on  channelId  returned  less  information  than
     requested because all available input  was  exhausted.   For
     example,  if gets is invoked when there are only three char-
     acters available for input and no end-of-line sequence, gets
     returns  an  empty  string and a subsequent call to fblocked
     will return 1.

     ChannelId must be an identifier for an open channel such  as  
     a  Tcl  standard  channel  (stdin,  stdout,  or stderr), the  
     return value from an invocation of open or  socket,  or  the  
     result  of  a  channel  creation  command  provided by a Tcl  
     extension.

EXAMPLE
     The fblocked command is  particularly  useful  when  writing
     network  servers,  as  it allows you to write your code in a
     line-by-line style without preventing the servicing of other
     connections.  This can be seen in this simple echo-service:

          # This is called whenever a new client connects to the server
          proc connect {chan host port} {
              set clientName [format <%s:%d> $host $port]
              puts "connection from $clientName"
              fconfigure $chan -blocking 0 -buffering line
              fileevent $chan readable [list echoLine $chan $clientName]
          }

          # This is called whenever either at least one byte of input
          # data is available, or the channel was closed by the client.
          proc echoLine {chan clientName} {
              gets $chan line
              if {[eof $chan]} {
                  puts "finishing connection from $clientName"
                  close $chan
              } elseif {![fblocked $chan]} {
                  # Didn't block waiting for end-of-line
                  puts "$clientName - $line"
                  puts $chan $line
              }



Tcl                     Last change: 7.5                        1






Tcl Built-In Commands                                fblocked(1T)



          }

          # Create the server socket and enter the event-loop to wait
          # for incoming connections...
          socket -server connect 12345
          vwait forever


SEE ALSO
     gets(1T),       open(1T),       read(1T),        socket(1T),
     TclStandardChannels(3TCL)


KEYWORDS
     blocking, nonblocking

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     
       ATRIBUTE TYPE     ATRIBUTE VALUE
    
     Availability         SUNWTcl        
    
     Interface Stability  Uncommitted    
    

NOTES
     Source for Tcl is available on http:/opensolaris.org.

























Tcl                     Last change: 7.5                        2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™