Exec

Temporarily transfers execution to an external program

Syntax
	KeyPgDeclareDeclare KeyPgSubFunction Exec ( KeyPgByrefByRef program KeyPgAsAs KeyPgConstQualifierConst KeyPgStringString, KeyPgByrefByRef arguments KeyPgAsAs
	KeyPgConstQualifierConst KeyPgStringString ) KeyPgAsAs KeyPgLongLong

Usage
	result = Exec( program, arguments )

Parameters
	program
		The file name (including file path) of the program (executable) to 
		transfer control to.
	arguments
		The command-line arguments to be passed to the program.

Return Value
	The exit status of the program, or negative one (-1) if the program 
	could not be executed.

Description
	Transfers control over to an external program. When the program exits, 
	execution resumes immediately after the call to Exec.

Example
	'A Windows based example but the same idea applies to Linux
	Const exename = "NoSuchProgram.exe"
	Const cmdline = "arg1 arg2 arg3"
	Dim result As Long
	result = Exec( exename, cmdline )
	If result = -1 Then
	   Print "Error running "; exename
	Else
	   Print "Exit code:"; result
	End If

Platform Differences
	* Linux requires the program case matches the real name of the file. 
	  Windows and DOS  are case insensitive. The program being executed may 
	  be case sensitive for its command line parameters.
	* Path separators in Linux are forward slashes / . Windows uses 
	  backward slashes \ but it allows for forward slashes .  DOS uses 
	  backward  \ slashes. 
	* Exit code is limited to 8 bits in DOS.

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Exec.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgChainChain transfer temporarily, without arguments
	* KeyPgRunRun one-way transfer
	* KeyPgCommandCommand pick arguments

