地址错误C(命令行解释程序)

时间:2014-11-17 15:44:05

标签: c command-line execve

这是我的代码:

/* myshell program */

#include<stdio.h>
#include <string.h>

#define MAX_LENGTH 40
#define TRUE 1

char cmd[MAX_LENGTH];
char args[MAX_LENGTH];

void prompt() {
  printf("%s", "Shell: ");
  scanf("%s", cmd);

  char *line = NULL;  
  size_t linecap = 0; 
  ssize_t linelen;  

  if ((linelen = getline(&line, &linecap, stdin)) > 0) {
    strcpy(args, line);
  }  
}


int main(char *envp[]) {
  while (TRUE) {
    prompt();
    if (fork() == 0) {
        execve(cmd, args, envp);
        perror("execv");
    }
  }
}

每当我输入(例如)/ bin / ls时,我都会收到一条错误,指出“Bad address”。我检查了cmd和args并确保它们收到正确的值。

1 个答案:

答案 0 :(得分:1)

检查以下链接: Arguments to main in C

main()的参数为int argc和char *argv[]

int main(int argc,char *argv[])