public static CParseResults parseHeaderFiles(DataTypeManager[] openDTMgrs, String[] filenames,
			String[] args, DataTypeManager dtMgr,
			TaskMonitor monitor) throws ghidra.app.util.cparser.C.ParseException,
			ghidra.app.util.cparser.CPP.ParseException, IOException {

		return parseHeaderFiles(openDTMgrs, filenames, null, args, dtMgr, monitor);
	}
Parse a set of C Header files and associated parsing arguments, data types are added to the provided
DTMgr.

Note: Using another open archive while parsing will cause:
- a dependence on the other archive
- any missing data types while parsing are supplied if present from an openDTMgr
- after parsing all data types parsed with an equivalent data type in any openDTMgr
    replaced by the data type from the openDTMgr
    
NOTE: This will only occur if the data type from the openDTMgr's is equivalent.

@param openDTMgrs array of datatypes managers to use for undefined data types

@param filenames names of files in order to parse, could include strings with
       "#" at start, which are ignored as comments
@param args arguments for parsing, {@code -D<defn>=}, ({@code -I<includepath>} use 
       includePaths parm instead)

@param dtMgr datatypes will be populated into this provided DTMgr, can pass Program or File DTMgr

@param monitor  used to cancel or provide results

@return a formatted string of any output from pre processor parsing or C parsing

@throws ghidra.app.util.cparser.C.ParseException for catastrophic errors in C parsing
@throws ghidra.app.util.cparser.CPP.ParseException for catastrophic errors in Preprocessor macro parsing
@throws IOException    if there io are errors saving the archive
Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/C/CParserUtils.java