使用execv进行基本I / O.

时间:2014-02-07 03:15:29

标签: c++ exec

我正在尝试使用execv()允许我从终端读入输出文件outputfile.txt。我遇到的问题是它根本不起作用,我不知道我是否正确使用它。

到目前为止我的代码:

void my_shell() {
    char* args[2];
    args[0] = "/usr/bin/tee";
    args[1] = "outputfile.txt";
    execv(args[0], &args[0]);   
}

int main() {

    cout << "%";
    //string input;
    pid_t pid, waitPID;
    int status = 0;
    pid = fork();
    if (pid == 0) {
        my_shell();
    }
    else if (pid < 0) {
        cout << "Unable to fork" << endl;
        exit(-1);
    }

    while ((waitPID = wait(&status)) > 0) {
    }

    return 0;
}

现在正在做的事情是什么都没发生。该程序分叉很好,但是my_shell中的内容根本没有做任何事情。我做错了什么?

1 个答案:

答案 0 :(得分:4)

您错过了NULL的{​​{1}}终结符。

args