int status = dio_find_devices(std::string const & pattern,
				      dio_find_devices_matches_t & matches,
				      bool allow_obsoletes = false)

	This routine finds device(s) using database pattern matching on device
	names and descriptions.  Both classic and full versions of names and
	descriptions are considered for match.

	pattern		Sybase pattern to look for in names or descriptions
			(Sybase pattern matching metacharacters are documented
	matches		returned matches found
			(Will be emptied if no matches were found.  The results
			 will be sorted alphabetically by full/long device name.
			 The performance of the this routine can be dramatically
			 improved by reserving space in this vector before the
			 call so that every push_back on the vector does not
			 trigger a memory allocation.)
	allow_obsoletes	flag indicating whether or not to match obsolete devices
			(true -> include obsolete devices,
			 false -> only include active devices (default))
			(deleted devices are always excluded)

	This function returns status values as follows:

	OK			at least one match was found
	DIO_NO_SUCH		no matches were found
	DIO_BADARG		pattern is not valid, e.g., is empty string
	otherwise		other error

	This function requires the following include files:

	diolib_h, acnet_errors_h, AcnetStatus_h 

	Related functions:

	dio_find_name_c, dio_dbquery_c

	C++ usage:

	int status;
	std::string const pattern("%out%");
	dio_find_devices_matches_t device_matches;
	device_matches.reserve( 3000 ); // The amount that should be reserved depends on the
	                                 // expected number of matches and does not impact
	                                 // correctness but can improve performance dramatically.
	bool allow_obsoletes = false;

	status = dio_find_devices(pattern,device_matches,allow_obsoletes);