【发布时间】:2021-07-20 00:23:22
【问题描述】:
所以下面的 sn-p 应该在一个简单的 shell 程序 'my257sh'> 中进行提示,或者如果在启动时将 -p 用作命令行 arg,然后是一个字符串用作自定义提示。
自定义提示运行良好,但在没有附加参数的情况下启动时出现段错误。
谁能告诉我我做错了什么难以置信的简单和愚蠢的事情?
int main(int argc, char *argv[]) {
char cmdline[MAXLINE]; /* Command line */
char def_prompt[20] = "my257sh";
const char prompt_check[2] = "-p";
char new_prompt[20];
if (argc > 0){
if (strstr(argv[1], prompt_check)) {
strcpy(new_prompt, argv[2]);
}
}
else {
strcpy(new_prompt, def_prompt);
}
signal(SIGINT, sigIntHandler); // ignores ctrl + C interrupt
while (1) {
/* Read */
printf("%s> ",new_prompt);
...
【问题讨论】:
-
const char prompt_check[2] = "-p";->const char prompt_check[3] = "-p";
标签: c shell segmentation-fault prompt