gpt4 book ai didi

c - C 代码中的 Bash 命令

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:28 25 4
gpt4 key购买 nike

我正在尝试使用 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[*]}");
}

在上面的代码中,下面几行没有显示任何内容

system("a=(a 9 8 4)");
system("echo ${a[*]}");

有什么想法吗?

最佳答案

两件事:

  • 每次调用 system() 时都会调用一个新的 shell。这意味着变量声明将只对当前调用的 shell 可见,而不是对 system()

  • 的后续调用
  • 除此之外,system() 内部调用了 /bin/sh,而不是 /bin/bash/bin/sh 在许多系统(比如你的系统)上是一个指向 POSIX 兼容 shell 的链接。 Array definitions are unfortunately not part of the POSIX shell language .

关于c - C 代码中的 Bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51224852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com