I am trying to call execv()
with some arguments, imagePath
and outputPath
are std::string
so I converted those to C strings, then I am converting integers to C strings as well.
The error I'm getting is
function not viable: no known conversion from 'const char *[6]' to 'char *const *' for 2nd argument
int execv(const char * __path, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
What is the difference between const char *[]
and char *const *
?
void Utility::ExecCrop()
{
// convert numbers to strings
const char* x_char = std::to_string(job.x).c_str();
const char* y_char = std::to_string(job.y).c_str();
const char* w_char = std::to_string(job.w).c_str();
const char* h_char = std::to_string(job.h).c_str();
const char* arguments[] = { imagePath.c_str(), outputPath.c_str(), x_char, y_char, w_char, h_char };
execv(execPath.c_str(), arguments);
}