Main Content

engOpen (C)

Start MATLAB engine session

C Syntax

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


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

Input Arguments

expand all

MATLAB startup command, specified as const char *.

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

On UNIX systems:

  • If startcmd is NULL or the empty string, then engOpen starts a MATLAB process on the current host using the command matlab. If startcmd is a hostname, then 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), then MATLAB executes the string literally.

Output Arguments

expand all

Handle to MATLAB engine, specified as Engine *. Returns NULL if the open fails.


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.

Version History

Introduced before R2006a