【问题标题】:system() function in CC语言中的system()函数
【发布时间】:2015-09-15 15:01:14
【问题描述】:

如果我运行这样的代码,我会执行 shell 脚本 .sh:

int system (char *s);
int sh_exec_ok; //Shell script execution flag

sh_exec_ok = system("something/script_name.sh");

你建议我用什么来在 C 代码中执行 shell 脚本?

【问题讨论】:

  • system() 应该做得很好 ;) 事实上,它执行 command line 就好像你在 shell 中一样,所以没关系。 (例如,您可以运行 lssystem()
  • 我建议你不要像那样在 C 中执行 shell 脚本,但是如果你的路径是正确的,并且你的脚本没问题,那么你的代码 应该工作......试试看
  • system() 可以执行任何路径正确的shell命令。不要忘记包括stdlib.h。但是,不建议这样做,因为它使代码平台依赖。
  • @Shreevardhan 我在 Debian 上运行它,我认为它会工作

标签: c debian


【解决方案1】:

使用system 是运行shell 命令的正确方法。一些注意事项:

  • 您不应该自己声明system。相反,请执行#include <stdlib.h>
  • 如果担心可移植性,请使用system(NULL)。如果返回值非零,则可以使用处理system 函数调用的命令处理器。
  • 最好使用 shell 脚本的完整路径,或设置路径以执行您要执行的 shell 脚本版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多