在linux环境下对c语言程序编译连接后执行该程序为什么在命令行中加./

如题所述

因为Linux有许多环境变量,其中有一个指定路径的,你输入的命令(也包括执行程序的命令),系统先到这些路径中去查询,如果其中包含了该语句就执行了,最后都没有查到才执行当前目录中的程序,用./强制执行当前目录下的程序就是避免这个意外(环境变量指定路径中与当前目录中要执行的程序同名),省得执行了一个程序还搞不清执行的是否当前目录中要执行的那个了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-08
./指的是当前目录,比如当前目录下有一个可执行文件setup,那么你需要用命令./setup来执行这个文件。如果直接用setup是不行的。为了区分可执行文件的名字和系统命令,需要这样的设定。
例如,你的可执行文件名为exit,那么你直接输入exit,系统是要退出呢?还是执行exit这个文件呢?系统会退出!这就是一个矛盾,而你输入./exit,那么系统就能够执行exit这个文件了。
希望对你有所帮助。追问

是不是跟bush也有关系?

追答

bush????shell吧?记不清楚了,有些关系吧。有的可执行文件用sh+文件名来执行。

本回答被提问者和网友采纳
第2个回答  2013-09-08
表示 执行当前目录下 有执行权限的文件~
第3个回答  2013-09-08
规定这样的啊,你问一下他们 开发系统的,这个从unix系统就有啊
相似回答