fm_read_multiple(_c)

	status.i4.v = fm_read_multiple(vun.i2.r, io_buffer.g.v,
				       bytes_per_rec.i4.r
				       [,record_number.i4.r]
				       [,num_records.i4.r] [,ext_status.i4.r]
				       [,records_read.i4.r]
				       [,asynchronous.i4.r])

	status.i4.v = fm_read_multiple_c(vun.i2.v, io_buffer.g.v,
					 bytes_per_rec.i4.v
					 [,record_number.i4.v]
					 [,num_records.i4.v] [,ext_status.i4.r]
					 [,records_read.i4.r]
					 [,asynchronous.i4.v])

	This routine reads multiple records from a Filesharing file opened
	on the virtual unit number.  The file may have either sequential or
	relative organization and fixed or variable length records.  The
	records are read into the user's buffer given by "io_buffer" according
	to the number of bytes requested per record by the "bytes_per_rec"
	parameter which specifies the fixed size allocated for each record.
	The user must specify a buffer of rsize by nrecs bytes to accept all
	requested records.  If the file has been opened for direct or keyed
	access, the record number specifies the first record to be read.  If
	the file has been opened for sequential access, the next "num_records"
	records in sequence are read starting from the current record (first
	record if just after fm_open_c call).   If "asynchronous" is specified
	and has a value of TRUE, the read will be asynchronous with control
	being returned to the caller without waiting for the read to complete.

	vun		virtual unit number on which the file was opened
	io_buffer	user's record buffer into which the record will
			be returned (Note: This must be the address of a
			byte array.)
	bytes_per_rec	number of bytes requested from each record
	[record_number]	specifies the logical record number for files
			opened for direct access (default is 0)
	[num_records]	number of records to read (default is 1)
	[ext_status]	returned extended status from VMS/RMS (default is NULL)
	[records_read]	returned number of records actually read
			(default is NULL)
	[asynchronous]	asynchronous flag
			(TRUE -> read will be done asynchronously,
			 FALSE -> synchronous read (default))

	This function returns status values as follows:

	OK			success
	FSHARE_xxx		error reading file
	CBS_INVARG		number of bytes <= 0
	event number		if successful asynchronous request

	This function requires the following include files:

	cnsparam_h, cbslib_h, acnet_errors_h

	Related functions:

	fm_read(_c), fm_open_read(_c)

	C/C++ usage:

	char	io_buffer[NUM_RECORDS][BYTES_PER_REC];
	short	vun;
	int	status;
	int	bytes_per_rec = BYTES_PER_REC;
	int	record_number = RECORD_NUMBER;
	int	num_records = NUM_RECORDS;
	int	ext_status;
	int	records_read;
	int	asynchronous = FALSE;

	status = fm_read_multiple_c(vun,(void *) io_buffer,num_bytes,
				    record_number,num_records,&ext_status,
				    &records_read,asynchronous);