Выполнение системных вызовов из файлов MATLAB Mex

В самом MATLAB очень легко вызывать системные команды, такие как следующие:

>> system('ls');
yprime.c    yprime.mexa64

(Примечание: использование Ubuntu)

Из программ C(++) я могу выполнять системные команды, используя std::system:

#include <cstdlib>
int main()
{
    std::system("ls");
}

Но как я могу выполнять системные команды из программ MATLAB Mex?

#include <cstdlib>
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
    std::system("ls");
}

^^Вышеприведенное компилируется, но ничего не выводит на экран при запуске.


person Bill Cheatham    schedule 17.01.2012    source источник


Ответы (1)


Я думаю, вам стоит взглянуть на эту тему:

Оптимальный захват stdout из команды system()

#include <stdio.h>

FILE *popen(const char *command, const char *type);

int pclose(FILE *stream);
person Oli    schedule 17.01.2012