- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作相当于的汇编代码
#include <stdio.h>
int main(int argc, char *args[]){
printf("%s", args[0]);
printf("%s", args[1]);
printf("%s", args[2]);
return 0;
}
C 代码和汇编都显示以下结果:
$ ./main
:
./main(null)TERM_PROGRAM=Apple_Terminal
$ ./main one
:
./mainone(null)
$ ./main one two
:
./mainonetwo
执行./main one
时和./main two
,输出有意义。但是,为什么调用./main
不带参数时,第三个参数显示为 TERM_PROGRAM=Apple_Terminal
?
奇怪的是,当我制作一个执行以下命令的 bash 脚本时:
echo $0
echo $1
echo $2
当我可以时,我会得到以下输出 ./main
没有参数:
./main
<empty line>
<empty line>
哪里<empty line>
是一个空行。
最佳答案
严格来说,访问argc
之外的argv
是一种未定义的行为。在您的情况下,请记住 main
签名是 (int args, char ** argv, char ** envp)
。最后一个参数指向程序环境,而环境字符串恰好在内存中与程序参数紧邻。
关于c - 为什么参数三等于 "TERM_PROGRAM=Apple_Terminal"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571747/
我正在制作相当于的汇编代码 #include int main(int argc, char *args[]){ printf("%s", args[0]); printf("%s", ar
我将我的 MacBookPro 升级到 macOS Sierra 并遇到了一个非常奇怪的行为。 首先,我按照文档中的建议使用 brew 安装 sbt: http://www.scala-sbt.org
我是一名优秀的程序员,十分优秀!