成都网站建设设计

将想法与焦点和您一起共享

windows系统管道的简单介绍

什么是linux管道,windows下有管道类似的东西吗?

管道是一种进程间通信机制,好比一个管子,一边一个口,一个往里放,另一头可以往出取,操作是双向的

成都创新互联专注于嘉黎企业网站建设,响应式网站设计,商城网站建设。嘉黎网站建设公司,为嘉黎等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

windows也有这样的东西Pipe

win7私密文件柜,打开管道通信出错,请确认安全服务是否正确启动?是什么意思

提示的意思是因为没有程序或其他服务使用netlogon服务,所以系统为了安全起见,自动将netlogon服务关闭了。这是正常现象,并不是无法启动。Netlogon服务为域控制器注册所有的srv资源纪录。这些记录出现在DNS服务器的正向查询区域你的域名中的_msdcs,_sites,_tcp,and_udp等文件夹中。其他计算机利用这些记录查询域活动目录相关的信息。“网络登录”系统服务维护计算机和域控制器之间的安全通道,对用户和服务进行身份验证。它将用户的凭据传递给域控制器,然后返回用户的域安全标识符和用户权限。这通常称为pass-through身份验证。“网络登录”被配置为仅在成员计算机或域控制器加入域时自动启动。在Windows2000Server系列和WindowsServer2003系列中,“网络登录”发布DNS中的服务资源定位器记录。当此服务运行时,它依赖“服务器”服务和“本地安全机构”服务来侦听传入的请求。在域成员计算机上,“网络登录”使用命名管道上的RPC。在域控制器上,它使用命名管道上的RPC、RPCoverTCP/IP、邮筒以及轻型目录访问协议(LDAP)。简单的说,你的机器如果不是域控制器或者dns服务器,没有必要起netlogon服务,你强行启动,系统为了安全也会马上自动关闭。

在windows操作系统中进程通信的方式有哪些

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

# 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

# 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

# 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。

windows管道通信能保证连续性吗

"命名管道"或"命名管线"(Named Pipes)是一种简单的进程间通信(I P C)机制, Microsoft Windows NT,Windows 2000,Windows 95以及Windows 98均提供了对它的支持 (但不包括Windows CE).命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的 ...

操作系统的管道示例问题

首先, 需要说明的是我对linux也不熟悉, 但用fork创建进程还是知道的.

对于windows程序员来说, 这段代码肯定比较难以理解了. 但linux则不同

在Linux下,当用fork创建进程的时候, 子进程是拷贝父进程的一个拷贝(这样的话可以避免传递很多的参数,

你用下windows的CreateProcess函数就会知道创建新进程有多麻烦了), 当然这也包括代码段了.

因此, 父进程会执行if-else而子进程同样会执行if-else, 区别它们的就是fork的返回值. 子进程由于

函数返回值是0所以会执行if() {}后的代码段, 而父进程则执行else{}代码段.

注: 父进程的fork返回子进程的pid(肯定大于0的), 子进程的fork返回0

父进程使用wait函数进行同步, 等待子进程结束(返回)后, 再执行后面的read(....代码段.

这是我从别处看到的:

子进程继承父进程这些东西:

用户id

控制终端

当前工作目录

根目录

文件方式创建屏蔽字

信号屏蔽和排列

对任一打开文件描述符的在执行时关闭标志

环境

连接的共享存储段。

资源限制

你代码里有不少的全角字符, 帮你改一下:

#include stdio.h

int main()

{

int x, fd[2];

char buf[30], s[30];

pipe(fd); /*创建管道*/

while((x=fork())==-1); /*创建子进程失败时,循环*/

if(x==0)

{

sprintf(buf, "This is an example\n");

write(fd(1), buf, 30); /*把buf中字符写入管道*/

exit(0);

}

else /*父进程返回*/

{

wait(0);

read(fd(0), s, 30); /*父进程读管道中字符*/

printf("%s", s);

}

return 0;

}


分享文章:windows系统管道的简单介绍
文章源于:http://chengdu.cdxwcx.cn/article/hidhso.html