如何使用C代码从Shell脚本获取返回值



我想使用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);
    }

最新更新