engOpen (C and Fortran)

Start MATLAB engine session

C Syntax

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

Fortran Syntax

#include "engine.h"
mwPointer engOpen(startcmd)
character*(*) startcmd



String to start the MATLAB® process.

On Windows® systems, the startcmd string must be NULL.

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.


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


engOpen starts a MATLAB process for using MATLAB as a computational engine.

Windows Platforms

engOpen launches MATLAB without a desktop.

The function opens a COM channel to MATLAB. The MATLAB software you registered during installation starts. If you did not register during installation, then see Register MATLAB as a COM Server.

UNIX Platforms

On UNIX systems, engOpen:

  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).


See these 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.

Introduced before R2006a