从MATLAB Mex文件执行系统调用

时间:2012-01-17 14:46:35

标签: 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");
}

^^以上编译,但在运行时不会输出任何内容。

1 个答案:

答案 0 :(得分:1)

我认为你应该看看那个帖子:

Capturing stdout from a system() command optimally

#include <stdio.h>

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

int pclose(FILE *stream);