当前位置: 首页 > news >正文

培训教材网站建设怎样制作简单的网页

培训教材网站建设,怎样制作简单的网页,阜宁网站开发,建设银行宁夏分行网站匿名管道管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端.os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下:复制代码 代码如下:#!/usr/bin/pythonimport timeim…匿名管道管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端.os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下:复制代码 代码如下:#!/usr/bin/pythonimport timeimport osdef child(wpipe):print(hello from child, os.getpid())while True:msg how are you\n.encode()os.write(wpipe, msg)time.sleep(1)def parent():rpipe, wpipe os.pipe()pid os.fork()if pid 0:child(wpipe)assert False, fork child process error!else:os.close(wpipe)print(hello from parent, os.getpid(), pid)fobj os.fdopen(rpipe, r)while True:recv os.read(rpipe, 32)print recvparent()输出如下:复制代码 代码如下:(hello from parent, 5053, 5054)(hello from child, 5054)how are youhow are youhow are youhow are you我们也可以改进代码,不用os.read()从管道中读取二进制字节,而是从文件对象中读取字符串.这时需要用到os.fdopen()把底层的文件描述符(管道)包装成文件对象,然后再用文件对象中的readline()方法读取.这里请注意文件对象的readline()方法总是读取有换行符\n的一行,而且连换行符也读取出来.还有一点要改进的地方是,把父进程和子进程的管道中不用的一端关闭掉.复制代码 代码如下:#!/usr/bin/pythonimport timeimport osdef child(wpipe):print(hello from child, os.getpid())while True:msg how are you\n.encode()os.write(wpipe, msg)time.sleep(1)def parent():rpipe, wpipe os.pipe()pid os.fork()if pid 0:os.close(rpipe)child(wpipe)assert False, fork child process error!else:os.close(wpipe)print(hello from parent, os.getpid(), pid)fobj os.fdopen(rpipe, r)while True:recv fobj.readline()[:-1]print recvparent()输出如下:复制代码 代码如下:(hello from parent, 5108, 5109)(hello from child, 5109)how are youhow are youhow are you如果要与子进程进行双向通信,只有一个pipe管道是不够的,需要2个pipe管道才行.以下示例在父进程新建了2个管道,然后再fork子进程.os.dup2()实现输出和输入的重定向.spawn功能类似于subprocess.Popen(),既能发送消息给子进程,由能从子子进程获取返回数据.复制代码 代码如下:#!/usr/bin/python#codingutf-8import os, sysdef spawn(prog, *args):stdinFd sys.stdin.fileno()stdoutFd sys.stdout.fileno()parentStdin, childStdout os.pipe()childStdin, parentStdout os.pipe()pid os.fork()if pid:os.close(childStdin)os.close(childStdout)os.dup2(parentStdin, stdinFd)#输入流绑定到管道,将输入重定向到管道一端parentStdinos.dup2(parentStdout, stdoutFd)#输出流绑定到管道,发送到子进程childStdinelse:os.close(parentStdin)os.close(parentStdout)os.dup2(childStdin, stdinFd)#输入流绑定到管道os.dup2(childStdout, stdoutFd)args (prog, ) argsos.execvp(prog, args)assert False, execvp failed!if __name__ __main__:mypid os.getpid()spawn(python, pipetest.py, spam)print Hello 1 from parent, mypid #打印到输出流parentStdout, 经管道发送到子进程childStdinsys.stdout.flush()reply raw_input()sys.stderr.write(Parent got: %s\n % reply)#stderr没有绑定到管道上print Hello 2 from parent, mypidsys.stdout.flush()reply sys.stdin.readline()#另外一种方式获得子进程返回信息sys.stderr.write(Parent got: %s\n % reply[:-1])pipetest.py代码如下:复制代码 代码如下:#codingutf-8import os, time, sysmypid os.getpid()parentpid os.getppid()sys.stderr.write(child %d of %d got arg: %s\n %(mypid, parentpid, sys.argv[1]))for i in range(2):time.sleep(3)recv raw_input()#从管道获取数据,来源于父经常stdouttime.sleep(3)send Child %d got: [%s] % (mypid, recv)print(send)#stdout绑定到管道上,发送到父进程stdinsys.stdout.flush()输出:复制代码 代码如下:child 7265 of 7264 got arg: spamParent got: Child 7265 got: [Hello 1 from parent 7264]Parent got: Child 7265 got: [Hello 2 from parent 7264]
http://www.sadfv.cn/news/294342/

相关文章:

  • 做搜狗网站点击赚钱建筑方案设计说明
  • 怀柔谁会网站开发wordpress爆破
  • 三亚人才招聘网站定制网站 报价
  • 源码建站和模板建站区别唐山建设工程安全监督网站
  • 自己做个网站需要几个软件云购物商城
  • 社保在哪个网站做增员wordpress标签背景
  • 惠州行业网站设计方案品牌运营策划
  • 婚纱摄影网站设计思路十堰微网站建设多少钱
  • asp.net网站开发之美淘宝单网站建设
  • 网站栏目页优化宁波大型网站设计公司
  • 中英文外贸网站模板 生成静态html包小盒设计网站
  • 图书馆网站制作移动端网站建设原则
  • 怎样做一家迷你的特卖网站回忆网站怎么做
  • dedecms 手机网站广东模板网站建设
  • 网站开发与电子商务网站建设 新闻
  • 免备案的网站建设沈阳企业黄页免费
  • 长春做网站外包宁波网站建设哪里好
  • 美工网站做兼职wordpress汽车主题
  • 手机微信可以做网站吗wordpress付费阅读chajian
  • 做装修的人到什么网站找工作聚财的公司名字
  • 做网站用什么数据库济宁网站建设500元
  • 昆明网站建设猫咪低价网站备案
  • 专业企业网站建设多少钱广州安全教育平台咨询电话
  • 怎样提高网站转化率竞价推广怎样管理
  • 丰都专业网站建设公司wordpress运营服务费用
  • 选择一个域名进行网站建设素马网站制作开发
  • ftp中如何找到网站首页岳阳网站建设联系方式
  • 如何做好网站建设的设计布局像淘客基地这样的网站如何做
  • 做网站的空间和服务器吗国外vps国内vps
  • 建设网站得目的做营销的有那么网站