C++/Php/Python 语言执行shell命令的方法(推荐)

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

1. C++ 执行shell命令

#include <iostream>
#include <string>
#include <stdio.h>

int exec_cmd(std::string cmd, std::string &res){
  if (cmd.size() == 0){  //cmd is empty
    return -1;
  }

  char buffer[1024] = {0};
  std::string result = "";
  FILE *pin = popen(cmd.c_str(), "r");
  if (!pin) { //popen failed
    return -1;
  }

  res.clear();
  while(!feof(pin)){
    if(fgets(buffer, sizeof(buffer), pin) != NULL){
      result += buffer;
    }
  }

  res = result;
  return pclose(pin); //-1:pclose failed; else shell ret
}

int main(){
  std::string cmd = "ls -ial";
  std::string res;

  std::cout << "ret = " << exec_cmd(cmd, res) << std::endl;
  std::cout << res << std::endl;

  return 0;
}

2. Php执行shell命令

<?php
  $cmd = "wc -l ./test.php";
  exec($cmd, $output, $code);

  echo $code."\n";
  print_r($output);
?>

3. Python执行shell命令

import commands

status, output = commands.getstatusoutput('ls -lt')

print status
print output

以上这篇C++/Php/Python 语言执行shell命令的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2017-03-30

C++/Php/Python/Shell 程序按行读取文件或者控制台的实现

写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> int main(){ const char* in_file = "input_file_name"; const char* out_file = "output_file_name"; FILE *p_in = fopen(in_file, "r"

将Python代码嵌入C++程序进行编写的实例

把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库     在我们写的源文件中增加"Python.h"头文件,并且链入"python**.lib"库(还没搞清楚这个库时静态库还是导出库,需要搞清楚)     掌握和了解一些python的C语言api,以便在我们的c++程序中使用 常用的一些C API函数 在了解下面的函数之前有必要了解一下**PyObject***指针,python里面几乎所有的对象都是使用这个指

15行Python代码实现网易云热门歌单实例教程

0. 引言 马上314情人节就要来了,是否需要一首歌来抚慰你,受伤或躁动的心灵.来吧,今天教你用15行代码搞定热门歌单.学起来并听起来吧. 本文使用的是Selenium模块,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击.下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效.另外采用了Chrome浏览器配合Selenium工作. 下面话不多说了,来一起看看详细的介绍吧 1. 环境 操作系统:Windows Python版本:3.7.2 2.

python代码编写计算器小程序

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root = tkinter.Tk() self.root.minsize(270, 330) self.root.maxsize(270, 330) self.root.title('小可乐的计算器') #定义一个变量赋

编写漂亮的代码 - 将后台程序与前端程序分开

在编写PHP程序时,有些代码是用来处理一些事务,例如操作数据库.进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码.首先我们应该清晰地区分这两种代码,把前者称为后台程序,把后者称为前端程序. 因为PHP是一种嵌入式编程语言,也就是说,所有的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处.但是,"物极必反",如果在一段较长的程序中将P

分享一下如何编写高效且优雅的 Python 代码

本文部分提炼自书籍:<Effective Python>&<Python3 Cookbook>,但也做出了修改,并加上了作者自己的理解和运用中的最佳实践. 全文约 9956 字,读完可能需要 24 分钟. Pythonic列表切割 list[start:end:step] 如果从列表开头开始切割,那么忽略 start 位的 0,例如list[:4] 如果一直切到列表尾部,则忽略 end 位的 0,例如list[3:] 切割列表时,即便 start 或者 end 索引跨界也不

高质量Python代码编写的5个优化技巧

如今我使用 Python 已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧.例如,最早使用 Python 时,我写了一个名为 Sudoku 的游戏(GitHub地址:https://github.com/MichaelWashburnJr/PythonSudoku).这个游戏在当时算是我比较拿得出手的项目了.然而现在,我无法直接复制其代码并运行它,具体原因是我当时编码时没有添加一个setup.py 或者 requires.txt 文件,当然,这种错误我肯定不会再犯! 由此,我总结

编写高质量代码改善C#程序——使用泛型集合代替非泛型集合(建议20)

软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行. 建议20:使用泛型集合代替非泛型集合 在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型.很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况: Array

Python编程之gui程序实现简单文件浏览器代码

本文主要分享了关于在python中实现一个简单的文件浏览器的代码示例,代码及展示如下. #!/usr/bin/env python # -*- coding: UTF-8 -*- import os from time import sleep from Tkinter import * class DirList(object): def __init__(self, initdir=None): '''构造函数,说明版本信息''' self.top = Tk() self.label = L

Python简单基础小程序的实例代码

1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j += 1 print(j,'*',i,'=',i*j,end = ' ',sep='') # end默认在结尾输出换行,将它改成空格 sep 默认 j,'*',i,'=',i*j 各元素输出中间会有空格 print()#这里作用是输出换行符 i = 1 while i <= 9: j = 1 while j <= i: print(&

100行python代码实现跳一跳辅助程序

写在前面 分享一下今天下午用python写的"跳一跳"小游戏的辅助程序.之前是准备用树莓派操控一个"机械手指"来代替人的触摸操作,但该方案还在酝酿中,实现了再分享.接下来要分享的是用"纯软件"的方法来玩"跳一跳". 原理 原理其实很简单,按如下步骤操作即可: 每次跳跃之前,截取一下手机屏幕,并将截图保存到本地电脑中: 计算截图中人偶的位置与将要跳至的台面中心的距离dd: 将以上距离dd换算成相应的触摸时间ss: 发送模拟触摸的