返回

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;
}

我认为问题出在函数中传递命令的方式上,但在尝试了这么多对代码的编辑之后,我仍然不知道问题到底是什么!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
相关帖子