Если бы я хотел запустить команду оболочки в linux с программой на c, я бы использовал
system("ls");
Есть ли способ сделать это в Wind River vxworks?
Я нашел приведенный ниже пример, но мне интересно, нужно ли включать заголовочные файлы vxworks, чтобы это работало? Я предполагаю, что знаю, но как мне определить, какой из них?
Пример:
// This function runs a shell command and captures the output to the
// specified file
//
extern int consoleFd;
typedef unsigned int (*UINTFUNCPTR) ();
extern "C" int shellToFile(char * shellCmd, char * outputFile)
{
int rtn;
int STDFd;
int outFileFd;
outFileFd = creat( outputFile, O_RDWR);
printf("creat returned %x as a file desc\n",outFileFd);
if (outFileFd != -1)
{
STDFd=ioGlobalStdGet(STD_OUT);
ioGlobalStdSet(STD_OUT,outFileFd);
rtn=execute(shellCmd);
if (rtn !=0)
printf("execute returned %d \n",outFileFd);
ioGlobalStdSet(STD_OUT,STDFd);
}
close(outFileFd);
return (rtn);
}