fm_open_io(_c)

	status.i4.v = fm_open_io(file_name.i1a.r, io_buffer.g.v,
				 num_bytes.i4.r, record_number.i4.r
				 [,ext_status.i4.r] [,close_it.i4.r]
				 [,vun.i2.r])

	status.i4.v = fm_open_io_c(file_name.i1a.r, io_buffer.g.v,
				   num_bytes.i4.v, record_number.i4.v
				   [,ext_status.i4.r] [,close_it.i4.v]
				   [,vun.i2.r])

	This routine will read or write a Filesharing record depending on
	the sign of "num_bytes".  It will also open the file for direct
	access if it isn't already open.  The file may have sequential,
	relative, or indexed organization and fixed or variable length
	records.  The logical record number defines the record to be read
	or written.  The default file open parameters may be changed by a
	call to fm_set_defaults.

	file_name	Filesharing file name excluding the prefix
			of "rsx$fshare_applicat_" (must be null terminated)
	io_buffer	user's data buffer to be read or written
	num_bytes	number of bytes to be read or written.  If "num_bytes"
			is less than zero, the record will be read.  If it's
			greater than zero, the record will be written.
	record_number	specifies the logical record number
	[ext_status]	returned extended status from VMS/RMS (default is NULL)
	[close_it]	close file flag
			(TRUE -> file will be closed after the I/O operation
				 has been completed,
			 FALSE -> file is left open (default))
	[vun]		returned VUN assigned to this operation
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	FSHARE_xxx		error accessing file
	CBS_INVNAME		file name is too int
	CBS_INVARG		zero byte length
	CBS_MEMFAIL		error in allocating dynamic memory

	This function requires the following include files:

	cnsparam_h, cbslib_h, acnet_errors_h

	Related functions:

	fm_open(_c), fm_io(_c), fm_close(_c), fm_open_read(_c),
	fm_open_write(_c), fm_file_attributes

	C/C++ usage:

	static const char	file_name[] = "controls_misc:my_file.dat";
	char	io_buffer[NUM_BYTES];
	short	vun;
	int	status;
	int	num_bytes = NUM_BYTES;
	int	record_number = RECORD_NUMBER;
	int	ext_status;
	int	close_it = FALSE;

	status = fm_open_io_c(file_name,(void *) io_buffer,num_bytes,
			      record_number,&ext_status,close_it,&vun);