ep7*_*ork 0 command-line executable
用g++ -o myFile myFile.cpp我编译一个程序后,用来./myFile &执行该程序。
使用&符号时,我知道程序在后台执行。
有人可以将我引导到正确的链接,解释什么./myFile a意思吗?我不明白为什么使用该命令a被解释为输入参数。
再次重读你的问题,我想我明白你在问什么。
您在命令提示符中输入的任何内容都由底层 shell 解释(如果您没有更改它,则为 Bash)。
在实际运行命令之前,Bash 会经历许多步骤:
当 shell 读取输入时,它会执行一系列操作。如果输入指示注释的开头,shell 将忽略注释符号 ('#') 和该行的其余部分。
否则,粗略地说,shell 读取其输入并将输入分为单词和运算符,使用引用规则来选择为各种单词和字符分配哪些含义。
然后,shell 将这些标记解析为命令和其他结构,删除某些单词或字符的特殊含义,扩展其他单词或字符,根据需要重定向输入和输出,执行指定的命令,等待命令的退出状态,并使该退出状态可用以便进一步检查或处理。
无论是左到由隔板的任何序列限定的命令的右侧容纳在$IFS,通常是 ,\t与\n后bash有通过上述被解释为一个参数的程序的步骤去:而不技术,这意味着,每个令牌提供给程序,它可以按照它想要的方式使用它。
更具体地说,在幕后发生的事情是,每个标记都作为参数传递给execve()系统调用,该系统调用启动程序并通过argv(指向通常包含在 的声明/定义中的字符的指针的指针)提供给程序main(),这程序可以访问以检索参数。