我想使用C代码从脚本中获取返回值。考虑我的脚本是在另一个分区中,我正在安装该分区,我在打电话,
value=system("./mnt1/myscript.img");
我需要MyScript.img文件中的一个函数,然后返回一个值(例如:mmcpart)如何构架脚本以获取返回值。谁能帮助我解决这个问题。预先感谢。
您可以在文件中写下shell脚本的输出,并从C程序中读取文件内容。
您的C程序必须仅在抱怨shell脚本进程时才尝试读取文件,最好使用$?= 0。
您可以将shell脚本文件的名称放入.profile文件中,并将自动执行您的shell脚本。
shell脚本编程具有功能强大的文件处理命令写入文件不应该是问题。
不确定为什么使用** Tee **命令。您是否希望输出也会发送t stdout?
您真正需要的是管道,然后叉和execvp可以执行脚本。这样的事情应该对您有用
int mypipe[2];
if(pipe(mypipe) == -1) {
perror("Pipe creation failed");
exit(1);
}
if(fork() == 0) //first fork
{
close(STDOUT_FILENO); //closing stdout
dup(mypipe[1]); //replacing stdout with pipe write
close(mypipe[0]); //closing pipe read
close(mypipe[1]);
const char* myprog[] = { "ps", "-ef", 0};
execvp(myprog[0], myprog);
perror("error in execvp for ps command");
exit(1);
}
char str[200];
FILE* fp = fdopen(mypipe[0], "r");
while (fgets(str, 200, fp) != 0) {
printf("%sn", str);
}