怎样在自己写的程序中以一种优雅的方式调用一些命令

依情况而定吧,看你的主程序和要执行的子程序是怎么协作的。1. 主程序只是纯粹地调用一下其他外部命令,然后就不闻不问了。这种情况下,可能直接execv就很不错了。不过确保要执行的外部命令确实可用就是你的事情了。2. 主程序只是通过调用外部程序,并根据外部程序的退出代码来执行一些操作。这种情况下,你可能需要等待外部程序执行完,并获取其退出代码。但是,这个外部命令的退出代码究竟是何含义,需要操心。3. 主程序和外部程序有更复杂的交互。比如,主程序可能想要处理外部程序的输出内容。这种情况下,通过popen再加上自己解析外部程序的输出,也是一种手段。但吃力不讨好。移植性不好。综上,我认为情况1时,可以execv,情况2时自己取舍,情况3时还是调用一些库吧(你能想到的功能,应该都有现成的库可用,你不是一个人在奋斗!)。总之,过多依赖外部命令,移植性应该是个问题。除非,这个外部命令是你自己实现的。
■网友
赞同@lyd7349的答案复杂的交互不建议通过管道,会有很多进程时序同步问题。也可以考虑把每一个模块都做成程序,然后用shell脚本统筹调用,这样就不存在了程序对其他程序的调用,缺点是效率低,封装不好,优点的便于修改。
■网友
有些工具是自带库的 但不知道ifconfig 是不是这样
■网友
我觉得怎么简单怎么优雅。性能不够再后期优化。
■网友
先实现功能吧,再考虑优雅。。。


    推荐阅读