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

团队网站怎么做/精准营销平台

团队网站怎么做,精准营销平台,酒泉网站怎么做seo,网站设计基本原则操作系统的实验要用到管道.管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将…
操作系统的实验要用到管道.
管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。匿名管道(Anonymous Pipes)是在父进程和子进程间单向传输数据的一种未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。
匿名管道实施细则
匿名管道由CreatePipe()函数创建,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。CreatePipe()的函数原型为:  
BOOL CreatePipe(PHANDLE hReadPipe, // 指向读句柄的指针
PHANDLE hWritePipe, // 指向写句柄的指针
LPSECURITY_ATTRIBUTES lpPipeAttributes, // 指向安全属性的指针
DWORD nSize // 管道大小
);
通过hReadPipe和hWritePipe所指向的句柄可分别以只读、只写的方式去访问管道。
匿名管道并不支持异步读、写操作,这也就意味着不能在匿名管道中使用ReadFileEx()和WriteFileEx(),而且ReadFile()和WriteFile()中的lpOverLapped参数也将被忽略。匿名管道将在读、写句柄都被关闭后退出,也可以在进程中调用CloseHandle()函数来关闭此句柄。
1.如果只想得到子进程的结果则可以只创建一个管道,然后ReadFile()得到输出就行了。 如下:  STARTUPINFO si;
PROCESS_INFORMATION pi;
char ReadBuf[100];
DWORD ReadNum;
HANDLE hRead; // 管道读句柄
HANDLE hWrite; // 管道写句柄
BOOL bRet = CreatePipe(&hRead, &hWrite, NULL, 0); // 创建匿名管道
if (bRet == TRUE)
printf("成功创建匿名管道!\n");
else
printf("创建匿名管道失败,错误代码:%d\n", GetLastError());
// 得到本进程的当前标准输出
HANDLE hTemp = GetStdHandle(STD_OUTPUT_HANDLE);
// 设置标准输出到匿名管道
SetStdHandle(STD_OUTPUT_HANDLE, hWrite);
GetStartupInfo(&si); // 获取本进程的STARTUPINFO结构信息
bRet = CreateProcess(NULL, "Client.exe", NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi); // 创建子进程
SetStdHandle(STD_OUTPUT_HANDLE, hTemp); // 恢复本进程的标准输出
if (bRet == TRUE) // 输入信息
printf("成功创建子进程!\n");
else
printf("创建子进程失败,错误代码:%d\n", GetLastError());
CloseHandle(hWrite); // 关闭写句柄
// 读管道直至管道关闭
while (ReadFile(hRead, ReadBuf, 100, &ReadNum, NULL))
{
ReadBuf[ReadNum] = '\0';
printf("从管道[%s]读取%d字节数据\n", ReadBuf, ReadNum);
}
if (GetLastError() == ERROR_BROKEN_PIPE) // 输出信息
printf("管道被子进程关闭\n");
else
printf("读数据错误,错误代码:%d\n", GetLastError());
2.如果要想向子进程输入数据则要为子进程的标准输入也创建一个管道.再用WriteFile()输入。 #include "Windows.h" #include "stdio.h" void main() { SECURITY_ATTRIBUTES sa,sa2; HANDLE hInputRead,hInputWrite; HANDLE hOutputRead,hOutputWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);  sa.lpSecurityDescriptor = NULL;  sa.bInheritHandle = TRUE;    if (!CreatePipe(&hOutputRead,&hOutputWrite,&sa,0))  { printf("Error On CreatePipe1"); return; }  sa2.nLength = sizeof(SECURITY_ATTRIBUTES);  sa2.lpSecurityDescriptor = NULL;
 sa2.bInheritHandle = TRUE;  if (!CreatePipe(&hInputRead,&hInputWrite,&sa2,0))  { printf("Error On CreatePipe2");  return;  }
 STARTUPINFO si;  PROCESS_INFORMATION pi;  si.cb = sizeof(STARTUPINFO);  GetStartupInfo(&si);  si.hStdError = hOutputWrite; ///  si.hStdOutput = hOutputWrite; ///写句柄赋予标准输出(或标准错误)句柄  si.hStdInput = hInputRead; ///  //当父进程向子进程发送数据时,用SetStdHandle()  //将管道的读句柄赋予标准输入句柄;在从子进程接收数据时,  //则用SetStdHandle()将管道的写句柄赋予标准输出(或标准错误)句柄。  //然后,父进程可以调用进程创建函数CreateProcess()生成子进程。 //  如果父进程要发送数据到子进程,父进程可调用WriteFile() //  将数据写入到管道(传递管道写句柄给函数),子进程则调用GetStdHandle() //  取得管道的读句柄,将该句柄传入ReadFile()后从管道读取数据。
si.wShowWindow = SW_HIDE;  si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;  DWORD dwWritten;  if (!CreateProcess(NULL,"c:\\windows\\system32\\cmd.exe ",NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))  { printf("Error On CreateProcess");  return;  }
 CloseHandle(hInputRead);  CloseHandle(hOutputWrite);  char szInPut[20] = "dir\r\n ";  // 父进程向子进程发送数据,输入  WriteFile(hInputWrite, szInPut, strlen(szInPut), &dwWritten, NULL);  char buffer[4096] = {0};  DWORD bytesRead;  // 父进程向子进程得到数据,输出   while (true)  {
  if(ReadFile(hOutputRead,buffer,4095,&bytesRead,NULL) == NULL)
 { break;  }     printf(buffer);
Sleep(500);  }
 CloseHandle(hInputWrite);  CloseHandle(hOutputRead);}

转载于:https://www.cnblogs.com/haoyuanyuan/archive/2013/01/29/2881950.html

http://www.lbrq.cn/news/969499.html

相关文章:

  • 绥化市建设局网站/朔州网站seo
  • 网站第三方微信登陆怎么做的/安徽网络建站
  • 公司网站建设 阜阳/网站seo具体怎么做?
  • 网站建设和seo讲师要求/百度风云榜电视剧排行榜
  • 做网站放什么/地方网站建设
  • 哪些网站可以接工程做/seo搜索引擎优化知乎
  • WordPress的/seo接单
  • 网站建设公司上海做网站公司排名/网址域名注册信息查询
  • 最专业网站建设公司哪家好/爱站网长尾挖掘工具
  • dreamweaver制作网站教程/seo基础知识
  • 做公众号推送的网站/社群营销活动策划方案
  • 网站 成功案例/成都seo优化
  • 建设建设网站的/广告公司接单软件
  • 做博物馆网站最重要性/东莞百度快速排名优化
  • 做ppt的网站兼职/公司seo是什么职位
  • wordpress 浏览次数/八宿县网站seo优化排名
  • 制作收费网站要花多少钱/郑州网络推广团队
  • 做外贸要建什么网站/搜狗搜索引擎网页
  • 网站开发毕设论文/深圳seo推广
  • 启迪网站建设/海外营销公司
  • 做视频挣钱的网站/网络运营培训课程
  • 用服务器ip做网站/单页网站seo优化
  • 时尚网站欣赏/淘宝直通车推广怎么做
  • 做网站用的hu软件/苏州seo服务
  • 做织梦网站时图片路径显示错误/湖北seo诊断
  • wordpress.短视频主题/百度网络优化
  • 中国菲律宾南海事件/优化排名案例
  • 做网站需要的电脑配置/seo长尾关键词排名
  • 网站内图片变换怎么做/武汉seo外包平台
  • 零基础网络工程师培训/正规seo排名多少钱
  • 一款基于PHP开发的不良事件上报系统源码,适用于医院安全管理。系统提供10类事件类别、50余种表单,支持在线填报、匿名上报及紧急报告。
  • Python第八章作业(初级)
  • Linux 716 数据库迁移
  • SM3算法工程中添加bouncycastle.bcprov.jdk15on库
  • 【前端】HTML语义标签的作用与实践
  • 访问者设计模式