C++ 使用execv进行基本I/O
我试图使用execv()从终端读取输出文件outputfile.txt。我的问题是它根本不起作用,我不知道我是否正确使用了它 到目前为止,我的代码是: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 << "%"
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);
}
您忘记了空终止符。请仔细阅读手册。您忘记了空终止符。请仔细阅读手册。