这几天在整decode的问题,由于代码是C的,而且完全重写成python 的话也比较麻烦把,里面各种位运算跟强制转换。所以就想到一个使用python调用C来解决这个问题

python调用C,这就涉及到一个叫命令行的东西,这几天也在用高通的qcat之类的工具,图形界面的确是给了我们很大的方便。

但是啊,程序还是命令行的强,命令行简单易懂,关键是就几个输入就几个输出,好了 开始这方面的演绎

先创建一个C程序 我的C程序如下

#include <stdio.h>

int main(int argc,char**argv)
{
    printf("hello\n");
    
  
  //输出输入的第一个参数的值 printf(
"argc %d argv %s\n",argc,argv[1]); return 20; }

编译好之后 使用如下的.py 调用

import os

data = " testdemo heheh"
runcmd = './test'
ret = os.system(runcmd + data)

print(ret)

输出如下

hello      //这个是C程序的输出
argc 3 argv testdemo    //这个也是C程序的输出
5120    //51为上一个程序成功执行  20 为返回值

具体os.sytem() 函数的返回值信息如下博文 :http://xingyunbaijunwei.blog.163.com/blog/static/76538067201341342330373/

我这里也具体粘贴一下,恩 很长

"OS error code   1:  Operation not permitted"
 "OS error code   2:  No such file or directory"
 "OS error code   3:  No such process"
 "OS error code   4:  Interrupted system call"
 "OS error code   5:  Input/output error"
 "OS error code   6:  No such device or address"
 "OS error code   7:  Argument list too long"
 "OS error code   8:  Exec format error"
 "OS error code   9:  Bad file descriptor"
 "OS error code  10:  No child processes"
 "OS error code  11:  Resource temporarily unavailable"
 "OS error code  12:  Cannot allocate memory"
 "OS error code  13:  Permission denied"
 "OS error code  14:  Bad address"
 "OS error code  15:  Block device required"
 "OS error code  16:  Device or resource busy"
 "OS error code  17:  File exists"
 "OS error code  18:  Invalid cross-device link"
 "OS error code  19:  No such device"
 "OS error code  20:  Not a directory"
 "OS error code  21:  Is a directory"
 "OS error code  22:  Invalid argument"
 "OS error code  23:  Too many open files in system"
 "OS error code  24:  Too many open files"
 "OS error code  25:  Inappropriate ioctl for device"
 "OS error code  26:  Text file busy"
 "OS error code  27:  File too large"
 "OS error code  28:  No space left on device"
 "OS error code  29:  Illegal seek"
 "OS error code  30:  Read-only file system"
 "OS error code  31:  Too many links"
 "OS error code  32:  Broken pipe"
 "OS error code  33:  Numerical argument out of domain"
 "OS error code  34:  Numerical result out of range"
 "OS error code  35:  Resource deadlock avoided"
 "OS error code  36:  File name too long"
 "OS error code  37:  No locks available"
 "OS error code  38:  Function not implemented"
 "OS error code  39:  Directory not empty"
 "OS error code  40:  Too many levels of symbolic links"
 "OS error code  42:  No message of desired type"
 "OS error code  43:  Identifier removed"
 "OS error code  44:  Channel number out of range"
 "OS error code  45:  Level 2 not synchronized"
 "OS error code  46:  Level 3 halted"
 "OS error code  47:  Level 3 reset"
 "OS error code  48:  Link number out of range"
 "OS error code  49:  Protocol driver not attached"
 "OS error code  50:  No CSI structure available"
 "OS error code  51:  Level 2 halted"
 "OS error code  52:  Invalid exchange"

 

相关文章:

  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-08-13
  • 2021-07-14
  • 2021-11-17
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 2022-02-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案