簡體   English   中英

錯誤地址C(命令行解釋器)

[英]Bad address C (command-line interpreter)

這是我的代碼:

/* 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時,都會出現錯誤,指出“地址錯誤”。 我檢查了cmd和args並確保它們接收正確的值。

檢查以下鏈接: C語言中main的參數

main()的參數是int argc和char *argv[]

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM