[英]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並確保它們接收正確的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.