gpt4 book ai didi

c++ - 使用 execv 执行基本 I/O

转载 作者:行者123 更新时间:2023-11-27 23:08:39 27 4
gpt4 key购买 nike

我正在尝试使用 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;
}

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

最佳答案

您缺少 argsNULL 终止符。

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

关于c++ - 使用 execv 执行基本 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com