如果我运行ssh命令并登录到服务器,是否有任何理由让代码调用system(),因为我可以自己运行它?
编辑:我的代码将用C
编写答案 0 :(得分:1)
系统调用将执行您想要的程序(带参数)。 system()调用调用shell。因此,从C程序内部,如果要删除文件,可以使用"rm filename"
作为参数调用系统(这只是一个用例 - 绝对不是你想从C中删除文件的方式程序)
只有在知道自己在做什么时才应该使用system()。如果用户输入是系统调用参数的任何部分,则应确保清理输入,以免打开命令注入。
系统调用的命令注入示例为here
系统的替代品是popen,显然是fork + exec。