我试图使用C程序运行一些bash命令,
#include<stdio.h>
#include<stdlib.h>
int main()
{
int j;
char a[4]={'a','9','8','4'};
for (j=0;j<=3;j++)
{
printf("a[%d]=%c %p\n",j,a[j],&a[j]);
}
system("a=(a 9 8 4)");
system("echo ${a[*]}");
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,下面的行没有显示任何内容
system("a=(a 9 8 4)");
system("echo ${a[*]}");
Run Code Online (Sandbox Code Playgroud)
任何的想法?
两件事情:
每次调用system()新shell都会被调用.这意味着变量声明只对当前调用的shell可见,而不是后续调用system()
除此之外,system()内部呼叫/bin/sh,而不是/bin/bash./bin/sh是在许多系统(如你的)上链接到POSIX兼容的shell.遗憾的是,数组定义不是POSIX shell语言的一部分.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |