开发者社区> 旭东的博客> 正文

C++/Php/Python 语言执行shell命令

简介: 编程中经常需要在程序中使用shell命令来简化程序,这里记录一下。 1. C++ 执行shell命令 1 #include 2 #include 3 #include 4 5 int exec_cmd(std::string cmd, std::string &res){ 6 if (cmd.
+关注继续查看

编程中经常需要在程序中使用shell命令来简化程序,这里记录一下。

1. C++ 执行shell命令

 1 #include <iostream>
 2 #include <string>
 3 #include <stdio.h>
 4 
 5 int exec_cmd(std::string cmd, std::string &res){
 6     if (cmd.size() == 0){   //cmd is empty 
 7         return -1;
 8     }
 9 
10     char buffer[1024] = {0};
11     std::string result = "";
12     FILE *pin = popen(cmd.c_str(), "r");
13     if (!pin) { //popen failed 
14         return -1;
15     }
16 
17     res.clear();
18     while(!feof(pin)){
19         if(fgets(buffer, sizeof(buffer), pin) != NULL){
20             result += buffer;
21         }
22     }
23 
24     res = result;
25     return pclose(pin); //-1:pclose failed; else shell ret
26 }
27 
28 int main(){
29     std::string cmd = "ls -ial";
30     std::string res;
31 
32     std::cout << "ret = " << exec_cmd(cmd, res) << std::endl;
33     std::cout << res << std::endl;
34 
35     return 0;
36 }

2. Php执行shell命令

1 <?php
2     $cmd = "wc -l ./test.php";
3     exec($cmd, $output, $code);
4 
5     echo $code."\n";
6     print_r($output);
7 ?>

3. Python执行shell命令

1 import commands
2 
3 status, output = commands.getstatusoutput('ls -lt')
4 
5 print status
6 print output

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C++语言中多文件组合方式之经典
C++语言中多文件组合方式之经典
47 0
C++语言中类与引用感悟之经典
C++语言中类与引用感悟之经典
17 0
计算后缀表达式-算法与数据结构-栈的运用-C++语言实现
计算后缀表达式-算法与数据结构-栈的运用-C++语言实现
33 0
中国上榜开发者薪酬最低国家;Go 语言产品负责人离职;谷歌 Carbon 旨在代替 C++ | 思否周刊
中国上榜开发者薪酬最低国家;Go 语言产品负责人离职;谷歌 Carbon 旨在代替 C++ | 思否周刊
84 0
成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫
成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫
512 0
C++:利用C++语言实现约瑟夫环问题——利用函数嵌套+交互式实现n只猴子选猴王
C++:利用C++语言实现约瑟夫环问题——利用函数嵌套+交互式实现n只猴子选猴王
83 0
IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程
IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程
40 0
Effective C++条款01:视C++为一个语言联邦
Effective C++条款01:视C++为一个语言联邦
33 0
C++STL开发温习与总结(六): 6.C++语言输入/输出流定义之输入/输出格式控制
C++STL开发温习与总结(六): 6.C++语言输入/输出流定义之输入/输出格式控制
54 0
+关注
旭东的博客
从事互联网开发工作,写博客,记录问题与学习支持,并分析
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
对象的生命期管理
立即下载
移动与复制
立即下载