我正在尝试使用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中的内容根本没有做任何事情。我做错了什么?
答案 0 :(得分:4)
您错过了NULL
的{{1}}终结符。
args