我听说 cmd shell 将整个内容传递给命令,然后标准 C 库将其分隔,同时考虑空格和引号。而在 Linux 中,只有 shell 可以做到这一点。
一个带有 while 循环的程序,显示 argsv[i] 显示它是如何定界的,但不显示 shell 做了什么,也没有显示 C 库做了什么。
任何人都可以指出或向我展示一个可以显示它的程序吗?
最佳答案
我想你想知道 shell 在 linux 中是如何工作的,对吗?我认为当我们在命令 shell 上键入任何内容时,shell 接收所有参数作为字符串格式的参数,shell 然后 fork+exec 二进制文件并将所有参数作为环境变量传递给新的二进制文件,然后将这些环境变量放入内核新进程的堆栈,稍后由进程作为 argc 和 argv[] 访问,但 c 库没有进行特殊处理。
关于c - 一个 C 程序演示 cmd.exe 和一个 linux shell 例如bash,定界参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157287/