Acquire a public OSAL_FILE handle for pathname through the active OSAL file backend, using the provided portable mode string and injected memory operations.
mem_ops != NULL, then mem_ops designates a valid osal_mem_ops_t.out must not be NULL.pathname must not be NULL.pathname must not designate an empty string.mode must not be NULL.mode must be one of the supported portable osal_file modes.mem_ops must not be NULL.OSAL_FILE_STATUS_OK.OSAL_FILE handle in *out.OSAL_FILE_STATUS_INVALID for invalid arguments.OSAL_FILE_STATUS_OOM on allocation failure.OSAL_FILE_STATUS_NOENTOSAL_FILE_STATUS_PERMOSAL_FILE_STATUS_EXISTSOSAL_FILE_STATUS_NOSPCOSAL_FILE_STATUS_NAMETOOLONGOSAL_FILE_STATUS_NOTDIROSAL_FILE_STATUS_ISDIROSAL_FILE_STATUS_MFILEOSAL_FILE_STATUS_NFILEOSAL_FILE_STATUS_LOOPOSAL_FILE_STATUS_ROFSOSAL_FILE_STATUS_NODEVOSAL_FILE_STATUS_NXIOOSAL_FILE_STATUS_STALEOSAL_FILE_STATUS_IO*out unchanged if out is not NULL.OSAL_FILE handle is transferred to the caller.osal_file_ops_t::close."rb", "wb", and "ab".pathname is expressed as a project-level UTF-8 path string.