【发布时间】:2010-11-11 17:27:33
【问题描述】:
我听说 cmd shell 将整个内容传递给命令,然后标准 C 库将其分隔,同时考虑到空格和引号。而在 linux 中,只有 shell 可以做到这一点。
一个带有 while 循环的程序,显示 argsv[i] 显示它是如何被分隔的,但不显示 shell 做了什么,以及 C 库做了什么。
谁能给我指点或给我看一个可以显示它的程序?
【问题讨论】:
-
为什么你认为你所描述的并没有告诉你shell做什么以及程序必须做什么?
-
我说的是标准库。我的印象是,一旦进入 main 方法,argsv 就会被库分隔。没有?
-
libc 什么都不做。
-
@Ignacio:在 Windows 上可以。 Windows 上的进程只获取命令行,而不是单个参数。
-
@barlop:Windows 中的进程将命令行作为单个字符串获取。 C 程序在其
main函数中获取一个用于分隔参数的字符串数组。正如您已经注意到的,对于 MS libc,这发生在stdargv.c。
标签: c windows linux command-line cmd