Exec Function Call

	int execl(pathname,arg0,arg1,arg2,...,argN,NULL )
	int execle(pathname,arg0,arg1,arg2,...,argN,NULL,envp )
	int execlp(pathname,arg0,arg1,arg2,...,argN,NULL )
	int execlpe(pathname,arg0,arg1,arg2,....,argN,NULL,envp )
	    char *pathname,*arg0,*arg1,*arg2,....,*argN,*envp[];

	int execv(pathname,arg,NULL )
	int execve(pathname,arg,NULL,envp )
	int execvp(pathname,arg,NULL )
	int execvpe(pathname,arg,NULL,envp )
	    char *pathname,*arg[],*envp[];

	- prototype in process.h

	- loads and runs child processes
	- pathname search based on MS-DOS search algorithm
	  o if no extension or period - search for exact file name -
	    if not found, add .exe and search again
	  o if extension given, search only for exact file name
	  o if period given, search for file name with no extension


	- arg0 can be the same as the pathname
	- at least one argument must be passed
	- combined argument list cannot exceed 128 bytes
	- execl..: arg0, arg1,...,argN passed as SEPARATE arguments
	- execv..: arg[0], arg[1],...,arg[N] passed as argument ARRAY
	- execlp, execlpe, execvp, execvpe: search for child in PATH
	- returns no value if OK,
	  returns -1, with  errno set to:

		E2BIG  (too many args)
		EACCES (permission denied)
		EMFILE (too many open files)
		ENOENT (path or file not found)
		ENOEXEC (exec format error)
		ENOMEM (not enough memory).

	- if successful, there is no return to the caller; the
	  caller is killed off