MIT 6.S081 | Lab util

Sleep Sleep 就是完成一个工具:sleep [time],输入后休眠 time 秒。 完成这个工具需要掌握两个关键点: 如何在 shell 中给程序传递参数 Sleep 的原理 Main 函数传参 C 语言中,Main 函数要么传递参数,要么传递参数。下面的示例写的很清楚。第一种不传递参数,直接在参数列表写一个 void ,不写也是可以的;第二种传递参数看起来就比较迷惑了。 1 2 3 4 5 6 7 8 int main(void) { // 无参数形式 return 0; } int main(int argc, char *argv[]) { // 带参数形式 return 0; } int argc, char *argv[],这到底传递的是什么?Argc 其实是参数的个数,agrv 则是参数的指针。也就是说我们 main 函数需要一个大小为 agrc 的列表,名字叫 argv,范围是 0-agrc-1 。 比如说我们执行 cp demo.c demo.cpp,agrc 为 3,argv 为 ['cp', 'demo.c', 'demo.cpp']。 那么 argc 和 argv 是如何得出的?这是 shell 的解析器在负责,不需要我们一个一个数参数到底有多少个。 总结一下:我们输入的指令,会被 shell 解析成 argc 和 argv ,然后交给 main 函数来使用。这里面还有更具体的流程,后面再说。 ...

2025-09-28 · 3 分钟 · 589 字 · 啊啊啊啊啊西贝