fsread(vun.i2.r, io_buffer.i1a.r, num_bytes.i2.r, status.i2.r
	       [,ext_status.i4.r] [,record_number.i4.r] [,bytes_returnd.i2.r]
	       [,event_flag.i2.r] [,timeout.i2.r] [,nolock.i2.r]
	       [,nodesc.i1.r] [,astfunc.f.v])

	File Sharing service routine used to read a record from a file opened 
	on the virtual unit number.  The file may have either sequential or  
	reletive organization and fixed or variable length records. The
	record is written into the user's buffer according to either the     
	number of bytes requested or the actual length of the record	     
	(whichever is shorter).  If the file was opened with direct	     
	access, then the logical record number defines the record to be	     
	read.  If the file was opened with sequential access, then the	     
	next record in sequence is read.  If an event flag (non-zero) is     
	specified, then the read will be done in an asynchronous manner	     
	and control will be returned to the user before the read is	     

	vun		virtual unit number on which the file was opened
	io_buffer	user's record buffer into which the record will be
	num_bytes	number of bytes requested from the record
			(the size of the iobuf area)
	status		returned ACNET status code
	[ext_status]	returned extended status from VMS/RMS
	[record_number]	specifies the logical record number for files
			opened for direct access (default is next sequential
	[bytes_returnd]	returned number of bytes actually read
			(actual length of the record) (default is NULL)
	[event_flag]	specifies an I/O completion event flag number
			(read is asynchronous if this is specified and
			 non-zero) (default is NULL)
	[timeout]	user-specified network timeout interval in units
			of seconds (default is 10 seconds)
	[nolock]	specifies that the record to be read is not to  
			be locked (relative or indexed file organizations
			only and only when opened for write access).
			Setting to TRUE disables record locking, the default
			is FALSE (read and leave locked).  NOLOCK can also
			take on integer values.  A value of 2 means read and
			leave locked and never unlock during subsequent
			operations. A value of 4 means unlock a previously
			locked record.
			(TRUE -> disable record locking,
			 FALSE -> enable record locking (default),
			 2 -> read and never unlock,
			 4 -> unlock a previously locked record)
	[nodesc] 	switch to identify the characteristics of 'io_buffer'
			(TRUE -> "io_buffer" is treated as a byte buffer passed
				 by reference,
			 FALSE -> "io_buffer" is treated as a character string
				  descriptor (default))
	[astfunc]	specifies the address of a routine to be executed
			at AST level on I/O completion (read is asynchronous
			if this is specified and non-zero) (default is NULL)

	This function requires the following include files:

	cnsparam_h, clib_h

	Related functions:

	fsopen, fsclos, fswrit, fsunlk, fsrdm, fsrew, fsweof, fsdel