C++ 使用execv进行基本I/O

C++ 使用execv进行基本I/O,c++,exec,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 << "%"

我试图使用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;
}
void my_shell(){
char*args[2];
参数[0]=“/usr/bin/tee”;
args[1]=“outputfile.txt”;
execv(args[0],&args[0]);
}
int main(){

cout您缺少
NULL
args
的终止符

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

您缺少
args
NULL
终止符

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

您忘记了空终止符。请仔细阅读手册。您忘记了空终止符。请仔细阅读手册。