C语言中的system()函数

C语言中的system()函数,c,debian,C,Debian,如果我运行这样的代码,我会执行shell script.sh吗: int system (char *s); int sh_exec_ok; //Shell script execution flag sh_exec_ok = system("something/script_name.sh"); 您建议我使用什么来执行C代码中的shell脚本?使用system是运行shell命令的正确方法。一些注意事项: 您不应自行声明系统。相反,要包含# 如果要考虑可移植性,请执行system(NUL

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

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

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

您建议我使用什么来执行C代码中的shell脚本?

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

  • 您不应自行声明系统。相反,要包含
    #
  • 如果要考虑可移植性,请执行
    system(NULL)
    。如果返回值非零,则可使用命令处理器处理
    系统
    函数调用
  • 最好使用shell脚本的完整路径,或者设置路径,使其执行您要执行的shell脚本版本

system()
应该做得很好;)事实上,它执行一个
命令行
,就好像你在一个shell中一样,所以没关系。(例如,您可以使用
system()
运行
ls
,我建议您不要像这样在C中执行shell脚本,但是如果您的路径正确,并且您的脚本正常,那么您的代码应该可以工作……只需尝试一下并查看
system())
可以执行任何shell命令,只要它的路径正确。不要忘记包含
stdlib.h
。但是,不建议使用它,因为它会使代码平台依赖于它。@shrevardhan我在Debian上运行它,我想它可能会重复