【发布时间】:2011-03-02 17:43:33
【问题描述】:
在许多 C++ IDE 和编译器中,当它为您生成 main 函数时,它看起来像这样:
int main(int argc, char *argv[])
当我在没有 IDE 的情况下仅使用命令行编译器编写 C++ 代码时,我会键入:
int main()
没有任何参数。这是什么意思,它对我的计划至关重要吗?
【问题讨论】:
-
如果您的程序要忽略命令行参数,那么您编写的内容就可以了。如果您的程序需要处理命令行参数,那么 IDE 做对了。
-
给黑客的提示:尝试声明
int main(int argc, char* argv[], char* envp[])并打印出最后一个参数。;) -
@ulidtko 你教新手在他们的程序中引入漏洞是不好的;)
-
@Gab 简单打印环境变量如何导致漏洞?只是不要将受污染的字符串逐字传递给
system()调用、数据库查询等。像往常一样使用用户输入。 -
@ulidtko 有趣.. 你能解释一下为什么在使用
char **envp参数时不必传递受污染的字符串、数据库查询等吗?
标签: c++ parameters command-line-arguments argv argc