函数原型FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);函数说明
popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这个管道必须由pclose()函数关闭,而不是fclose()函数。pclose()函数关闭标准I/O流,等待命令执...
分类:
系统相关 时间:
2015-07-24 18:34:49
阅读次数:
142
#!/usr/bin/envpython
importsubprocess
try:
importsimplejsonasjson
except:
importjson
memory_status={}
p=subprocess.Popen("dmidecode--typesystem|perl-alne‘/Manufacturer:\s(.*)/andprint$1‘",shell=True,stdout=subprocess.PIPE)
vender=p.stdout.readline().s..
分类:
编程语言 时间:
2015-07-16 22:38:55
阅读次数:
253
两个很有用的进程间通信函数popen,pclose
今天起的比较晚,然后来了也不想复习,还是看书学习--写代码--写博客有意思,不敢说有多精通,至少每天都在学习新知识,不求立刻完全消化,但求每天有进步。
现在就看看这两个函数,其实都是创建一个管道到子进程,但是使用这两个函数要比昨天使用pipe() 函数简单的多。
#include
FILE *popen...
分类:
系统相关 时间:
2015-07-13 12:17:53
阅读次数:
153
路径:/usr/local/php/etc/php.iniphp用“;”作为“注释”符号,shell用“#”作为“注释”符号;编辑php.ini[root@LAMPLINUX~]#vim/usr/local/php/etc/php.ini1.查询/disable_functions设置禁用函数disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellc..
分类:
Web程序 时间:
2015-07-11 18:46:06
阅读次数:
148
1.os.system()
优点:简单,linux&widnows等平台均可用,只需要判断返回结果是0还是1即可判断是否执行成功。
缺点:无法获取返回输出。
例子:
os.system('ls')
2.os.popen()
优点:可获取输出结果
缺点:无法获取执行结果,需要根据输出结果做判断处理
例子:
output = os.popen('ls')
print outp...
分类:
编程语言 时间:
2015-07-11 15:10:29
阅读次数:
185
13.4 pipe调用
在看过高级的popen函数之后,再来看看底层的pipe函数.通过这个函数在两个程序之间传递数据不需要启动一个shell来解释请求的命令.它同时提供了对读写数据的更多控制.
pipe函数的原型如下所示:
#include
int pipe(int file_descriptor[2]);参数:是一个由两个整数类型的文件描述符组成的数组.
返回值:该函数在数组中...
分类:
系统相关 时间:
2015-07-11 09:20:14
阅读次数:
287
13.3 将输出送往popen
看过捕获外部程序输出的例子后,再来看一个将输出发送到外部程序的示例程序popen2.c,它将数据通过管道送到另一个程序.在这里使用的是od(八进制)命令.
编写程序popen2.c,它非常类似popen1.c,唯一的不同是这个程序将数据写入管道,而不是从管道中读取.
/*******************************************...
分类:
系统相关 时间:
2015-07-10 09:37:43
阅读次数:
200
13.3.2 如何实现popen
请求popen调用运行一个程序时,它首先启动shell,即系统中的sh命令,然后将command字符串作为一个参数传递给它,这有两个效果,一个好,一个不好.
在linux中,所有的参数扩展都是由shell来完成的.所以,在启动程序之前先启动shell来分析命令字符串,就可以使各种shell扩展(如*.c所指的是哪些文件)在程序启动之前就全部完成.这个功能...
分类:
系统相关 时间:
2015-07-10 09:37:35
阅读次数:
196
一个进程连接数据流到另一个进程--管道--pipe进程管道1 #include 2 FILE * popen(const char * command, const char * open_mode)3 int pclose(FILE * stream_to_close);popen函数允许一个程序...
分类:
系统相关 时间:
2015-07-01 17:53:18
阅读次数:
248
目前使用到的有两种方式:os.system()和os.popen()import osos.system('cd e:cjx') #调用后返回执行结果状态如果想获得返回结果,则使用以下方式:import osres = os.popen('dir').readlines()print(res)如果要...
分类:
编程语言 时间:
2015-06-30 17:44:53
阅读次数:
203