【发布时间】:2019-08-19 13:07:46
【问题描述】:
我也在用 C 语言编写一个包含 bash 代码的程序。我需要将 C 变量的值分配给 bash 变量。更具体地说,我需要将提供给 C 程序的参数分配给同一程序内的 bash 变量。
int main( int argc, char **argv)
{
printf(argv[1]);
system("echo $1"); // Here I need to assign argv[1] to bash variable.
}
【问题讨论】:
-
创建一个缓冲区,将值写入其中
sprintf(buf, "echo %s",argv[1])并在缓冲区上使用system() -
什么“bash 变量”?您将如何将这些信息从 bash 传递到您的程序?通过命令行(
$ ./a.out 42 FOO),也许? -
@Tommylee2k
sprintf- 这就是您在应用程序中创建漏洞的方式。 -
@MaximEgorushkin 我认为这是他最小的问题;)