Is there a way to generate c code for system function which runs batch file?
Show older comments
I am trying to run a batch file which eventually runs an exe file. I am trying to use system function to run this batch file.But system is not supported for code generation. Is there a way to generate c code for system function or is there a way with which I can run a batch file which will be supported by code generation?
Answers (1)
Walter Roberson
on 9 Jan 2018
0 votes
You can coder.ceval() to call CreateProcess() and see https://msdn.microsoft.com/en-us/library/windows/desktop/ms682015(v=vs.85).aspx or the ISO _execv() https://docs.microsoft.com/en-ca/cpp/c-runtime-library/reference/execv-wexecv
In Unix systems, execv() or execvp() would often be used.
7 Comments
sai kamal sreeja veepuri
on 9 Jan 2018
Walter Roberson
on 9 Jan 2018
You cannot do that when you generate C code. MATLAB only generates code that uses nothing more than the standard C library, and the standard C library does not have any routines corresponding to system() or unix() or dos() . As far as MATLAB Coder knows, the code is being sent to an FPGA or an embedded DSP that has no operating system, so you need to put in custom coder.ceval calls if you want something more.
sai kamal sreeja veepuri
on 9 Jan 2018
Edited: Walter Roberson
on 9 Jan 2018
Walter Roberson
on 9 Jan 2018
Use the "call external C function" example (the first one). You would want one input argument that is const char *
sai kamal sreeja veepuri
on 10 Jan 2018
Walter Roberson
on 10 Jan 2018
The non-deploy branch,
y = 'C:\Users\Tester\Desktop\Release\meter_app.bat';
should also
system(y)
You should pay attention to the data type of the return value: system() at the C level returns an int, but in the non-deploy branch you have it returning a character vector. Perhaps you should change the deploy branch to
y = system('C:\Users\Tester\Desktop\Release\meter_app.bat');
I recommend changing your declaration from
int execute();
to
int execute(void);
sai kamal sreeja veepuri
on 10 Jan 2018
Categories
Find more on C Code Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!