gpt4 book ai didi

C,我想将 3 个参数传递给 bash 脚本,我是 c 菜鸟

转载 作者:行者123 更新时间:2023-11-30 20:20:10 25 4
gpt4 key购买 nike

我读了一些书,了解了一些关于 c 中的系统函数的知识。那么,假设我有一个 bash 文件 ./some.sh,它需要三个参数,我应该如何使这段代码工作?编译时不会出现有关缓冲区的错误。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
snprintf(buffer, sizeof(buffer), "/bin/bash ./some.sh %s %s %s", target1, target2, target3);
system(buffer)
}

最佳答案

稍微复杂一点,但更安全的是避免 system 并显式调用 fork 和某些版本的 exec (下面,我使用execl)。 (为简单起见,省略了错误处理。)这避免了在创建 shell 命令行时确保正确引用每个参数的需要。

int main(void) {
// ...
if (fork() == 0) {
execl("/bin/bash", "./some.sh", target1, target2, target3, (char *)0);
}
}

(注意:方法是合理的;我实际的 C 实现可能还有一些不足之处。)

关于C,我想将 3 个参数传递给 bash 脚本,我是 c 菜鸟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367053/

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