Apache APR function apr_procattr_cmdtype_set confusion
===

I've been following tutorials online on C coding and the code is using the Apache APR library.
It uses the apr_proc_t structure to execute an external app.
I'm confused about this function, could someone explain what this function means:

    apr_status_t apr_procattr_cmdtype_set 	( 	apr_procattr_t *  	attr,
    		apr_cmdtype_e  	cmd 
    	) 		
    
    Set what type of command the child process will call.
    
    Parameters:
        attr	The procattr we care about.
        cmd	The type of command. One of:
    
                    APR_SHELLCMD     --  Anything that the shell can handle
                    APR_PROGRAM      --  Executable program   (default) 
                    APR_PROGRAM_ENV  --  Executable program, copy environment
                    APR_PROGRAM_PATH --  Executable program on PATH, copy env
     
