c-execvp()函数始终返回-1
发布时间:2022-03-29 19:47:56 260
相关标签:
在我的代码中,我试图使用函数execvp()来执行我在shell中得到的命令,但当我将函数的第一个参数替换为(例如)时,函数总是返回-1,表示未成功;ps";它工作正常,但当它(命令)不工作时,我已经通过从输入行获取命令后打印它来检查命令是否正常,它是一个没有问题的精细字符串,但函数一直返回错误!!
#include
#include
#include
#include
#include
#include
#define BUFFER_SIZE 100
int main(void)
{
close(2);
dup(1);
char command[BUFFER_SIZE];
while (1)
{
char *arg[3];
fprintf(stdout, "my-shell> ");
memset(command, 0, BUFFER_SIZE);
fgets(command, BUFFER_SIZE, stdin);
if(strncmp(command, "exit", 4) == 0)
{
break;
}
arg[0] = command;
arg[1] = "\0";
arg[2] = "\0";
i = execvp(command,arg);
printf("%d",i);
}
return 0;
}
我认为问题出在函数中传递命令的方式上,但在尝试了这么多对代码的编辑之后,我仍然不知道问题到底是什么!
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报