Operating system 在C中执行标记:“.”和“/”在“/”中是什么意思?

Operating system 在C中执行标记:“.”和“/”在“/”中是什么意思?,operating-system,token,Operating System,Token,执行C程序时,我们必须键入“.”标记和“/”标记,后跟程序名: ./program 这些代币都是什么意思?为什么他们需要在一起工作?。表示当前路径 。。意思是父母 /表示根或路径分隔符。取决于Unix/Windows/Mac ./指当前路径,并与RHS相关 ./Program是指PWD和Program作为目录或位置。语法实际上只是指当前目录。是当前目录,/是路径分隔符。这是必需的,因为shell将查找$PATH环境变量中指定的可执行文件的文件夹。由于程序位于当前目录中,默认情况下该目录不在PA

执行C程序时,我们必须键入“.”标记和“/”标记,后跟程序名:

./program
这些代币都是什么意思?为什么他们需要在一起工作?

。表示当前路径

。。意思是父母

/表示根或路径分隔符。取决于Unix/Windows/Mac

./指当前路径,并与RHS相关


./Program是指PWD和Program作为目录或位置。

语法实际上只是指当前目录。是当前目录,/是路径分隔符。这是必需的,因为shell将查找$PATH环境变量中指定的可执行文件的文件夹。由于程序位于当前目录中,默认情况下该目录不在PATH中,因此您需要指定运行该程序的文件夹。

实际上,这与C无关。该值仅传递给操作系统并用于定位文件


但在Windows上,它似乎没有多大意义。是当前目录,/只是当前目录和程序之间的路径分隔符。由于操作系统默认为当前目录,它引用的路径与程序相同。

您应该稍微澄清一下您的答案。。。因为显然/并不意味着在所有情况下都是根,比如在问题的用例中。这与C无关,它是一个OS结构。这都与相对路径有关。请在此处阅读更多内容:@K-ballo如果你想说得更准确些,它也与操作系统无关,是shell解释了路径。@mah:路径是一个操作系统概念,而不是shell概念…@K-ballo@mah我真的不认为两者都是~/foo在许多shell中都是有效的路径。一些shell将根据需要将/foo转换为\foo,即cygwin。此外,一些客户端(如浏览器)可能理解操作系统通常不理解的文件路径。在Windows中,首先检查当前目录,然后检查%PATH%。所以你不需要说*另一方面,nix在查找要运行的东西时几乎只检查$PATH,除非指定目录。讽刺的是,你说这与C无关。想象一下,在Unix中永远无法在命令行上执行C程序。不,这一点都不相关。说什么?在封面下,路径被发送到操作系统以查找文件。操作系统不关心它是否来自命令行、C程序或任何其他语言编写的程序。我错过什么了吗?