gpt4 book ai didi

c - 编写基本的 C Shell - 理解 argv[]

转载 作者:行者123 更新时间:2023-11-30 17:44:40 27 4
gpt4 key购买 nike

我的类(class)有一项作业,要求编写基本的 C Shell。我发现许多页面解释了其中的部分内容以及一些完全实现的代码。我不会复制,我只是现在使用它作为入门的一种方式。

所以我显然正处于这个项目的开始阶段。一example我正在研究解析用户的输入并将指向参数开头的指针存储在 char *argv[3];

我只是误解了这一点,或者如果有超过 3 个参数,这在技术上会崩溃吗? (比如 /a.out arg1 arg2 arg3 等)。我想以某种方式分配这个吗?

我知道a.out被认为是argv[0] ,以及参数 argv[1] - 不管有多少。程序有太多参数可能是不好的做法,但我仍然至少想解决它,因为我不知道我的助教将使用什么来测试我的 shell。

最佳答案

它可能会损坏,也可能不会损坏,但它有缺陷。如果存在 >3 个参数,会发生什么情况,您将写入超出保留数组长度 3 的内容。即一些参数将位于操作系统认为未分配的内存中,并且它可能会在那里分配其他对象。

应该在 parse() 中检查是否存在超过 3 个参数,如果存在则停止解析并显示错误消息。

关于c - 编写基本的 C Shell - 理解 argv[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19896493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com