engOpen (C and Fortran)

Start MATLAB engine session

C Syntax

#include "engine.h"
Engine *engOpen(const char *startcmd);

Fortran Syntax

mwPointer engOpen(startcmd)
character*(*) startcmd



String to start the MATLAB® process. On Windows® systems, the startcmd string must be NULL.


Pointer to an engine handle, or NULL if the open fails.


This routine allows you to start a MATLAB process for using MATLAB as a computational engine.

engOpen starts a MATLAB process using the command specified in the string startcmd, establishes a connection, and returns an engine pointer.

On UNIX® systems, if startcmd is NULL or the empty string, engOpen starts a MATLAB process on the current host using the command matlab. If startcmd is a hostname, engOpen starts a MATLAB process on the designated host by embedding the specified hostname string into the larger string:

"rsh hostname \"/bin/csh -c 'setenv DISPLAY\ 
	hostname:0; matlab'\""

If startcmd is any other string (has white space in it, or nonalphanumeric characters), MATLAB executes the string literally.

On UNIX systems, engOpen performs the following steps:

  1. Creates two pipes.

  2. Forks a new process. Sets up the pipes to pass stdin and stdout from MATLAB (parent) software to two file descriptors in the engine program (child).

  3. Executes a command to run MATLAB software (rsh for remote execution).

On Windows systems, engOpen opens a COM channel to MATLAB. The MATLAB software you registered during installation starts. If you did not register during installation, enter the following command at the MATLAB prompt:

!matlab -regserver

See MATLAB COM Integration for additional details.


See the following examples in matlabroot/extern/examples/eng_mat.

  • engdemo.c for a C example on UNIX operating systems.

  • engwindemo.c for a C example on Microsoft® Windows operating systems.

  • fengdemo.F for a Fortran example.

Was this topic helpful?