lock_read_program_locks_c

	status.i4.v = lock_read_program_locks_c(owner_name.i1a.r, node.i4.v,
						num_locks.i4.r [,lock_data.sp.r]
						[,check_dropped.i4.v])

	This routine returns the list of locks owned by a particular process.
	The scope of locks are for the lifetime of the process requesting
	the lock.  Locks are maintained in software and are only as good as
	the applications that adhere to them.

	owner_name	null terminated owner's process name
	node		owner's ACNET node
	num_locks	returned number of locks
	[lock_data]	returned lock information
			(structures of type PROGRAM_LOCK_ENTRY_DATA)
			(These structures are allocated by this routine
			 and should be freed by the caller.)
			(A value of NULL can be passed for this argument
			 if this information is not needed.)
			(default is NULL)
	[check_dropped]	flag indicating whether or not to check if a
			lock has been dropped
			(TRUE -> if lock is held, make sure that it has
				 not been dropped,
			 FALSE -> don't check for dropped locks (default))

	This function returns ACNET status values as follows:

	OK			success
	SQL_xxx			lock status not read -
				this system error occurred

	This function requires the following include files:

	cnsparam_h, cbslib_h, cns_data_structs_h, acnet_errors_h

	Related functions:

	lock_read, lock_request, lock_release

	C/C++ usage:

	static const char	owner_name[] = "PA1028";
	int	status;
	int	node = CLX1;
	int	num_locks;
	int	check_dropped = TRUE;
	PROGRAM_LOCK_ENTRY_DATA	*lock_data;

	status = lock_read_program_locks_c(owner_name,node,&num_locks,
					   &lock_data,check_dropped);