在我的代码中,我试图使用函数execvp((来执行我在shell中得到的命令,但当我用(例如("ps";它工作得很好,但当它是(命令(时,它就不起作用了,我已经通过从输入行获得命令后打印它来检查命令是否正常,它是一个很好的字符串,没有问题,但函数一直给我返回错误!!
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#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] = "