在Windows编程中,重定向需要用到管道(Pipe)的概念。管道是一种用于在进程间共享数据的机制。一个管道类似于一个管子的两端,一端是写入的,一端是读出的。由一个进程从写入端写入、另一个进程从读出端读出,从而实现通信,就向一个“管道”一样。
重定向的原理是:
如果要重定向stdout的话,先生成一个管道, 管道的写入端交给子进程去写,主程序从管道的读出端读数据,然后可以把数据写成文件、显示等等。重定向stderr和stdout是相同的。
如果要重定向stdin的话,生成一个管道, 管道的写入端由主程序写,...
要对kamailio/opensips进行单步调试,就需要先了解其代码的结构及运行方式,kamailio/opensips使用Reactor和Proactor结合的IO网络模型,使用主进程负责监听网络,当有连接产生或首包到达时,就通过pipe将文件描述符发送给worker进程,worker进程就会负责此连接的数据取读、业务处理、数据发送等事情,然后再次等待此socket...
分类:
数据库 时间:
2014-09-24 23:56:07
阅读次数:
570
在项目中,经常会遇到单机上进程间的通信,常用的进程间通信方式一般有以下几种
1 socket
2 unixsocket
3 共享内存(share-memory)
4 管道(pipe)
5 消息队列(message-queue)
6 文件(file)
7 消息总线(比如zeromq)
8 其他中间件(比如redis, memchache, 数据库等)
如果项目仅仅是消息的传递,对...
分类:
系统相关 时间:
2014-09-24 20:33:27
阅读次数:
3658
转自http://blog.sina.com.cn/s/blog_587c016a0100nfeq.htmllinux下进程间通信IPC的几种主要手段简介:管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有...
分类:
系统相关 时间:
2014-09-24 16:01:27
阅读次数:
1547
进程间的通信方式: 1.管道(pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。2.信号(signal): 信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一...
分类:
其他好文 时间:
2014-09-23 13:48:54
阅读次数:
162
管线命令使用『 | 』界定符号[root@www ~]# ls -al /etc | less管线命令『 | 』仅能处理经由前面一个命令传来的正确信息,也就是 standard output 的信息,对于 stdandard error 并没有直接处理的能力。 图 6.1.1、 管线命令的处理示意图...
分类:
其他好文 时间:
2014-09-23 03:11:43
阅读次数:
287
进程间通信的几种方式:
1、普通管道(pipe):管道是一种单工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系或者兄弟进程之间。
2、流管道(s_pipe):一种半双工的通信方式,可以双向传输。
3、有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系的进程间的通信。
4、信号量(semophore):信...
分类:
其他好文 时间:
2014-09-22 17:09:42
阅读次数:
211
进程间的通信方式:1.管道(pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。2.信号(signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进...
分类:
其他好文 时间:
2014-09-17 21:46:12
阅读次数:
325
Netty3 源码分析 - NIO server绑定过程分析
一个框架封装的越好,越利于我们快速的coding,但是却掩盖了很多的细节和原理,但是源码能够揭示一切。服务器端代码在指定好ChannelFactory,设定好选项,而后Bootstrap.bind操作就会开启server,接受对端的连接。所以有必要对这后面的过程分析清楚,下图是关键流程。先是构建一个默认的Pipe...
分类:
Web程序 时间:
2014-09-17 20:28:12
阅读次数:
221
用execvp实现时,运行adb,如果adb 服务没有启动,会启动adb服务,启动adb服务时,pipe返回的管道在读的时候堵塞了。查看了popen的源码,发现popen是用sh -c来执行的,避免了这个问题不知道sh -c做了些什么操作,使得popen可以避免这个问题代码如下: 1 #ifndef...
分类:
系统相关 时间:
2014-09-16 18:56:00
阅读次数:
296