|
在日常的工作中shell使用比较多,尤其在软件测试过程中但使用手工操作既麻烦,又记不住命令关键是不能自动化。众所周知linux或者windows系统的shell都是可以进行输入输出shellexec重定姠向的,利用输入输出shellexec重定向向技术把shell的输入输出映射到自己所写的进程里,这样就很方面了比如要使用ssh2远程一个linux机器,就需要自己實现ssh2客户端的协议使用shellexec重定向向,就可以直接使用操作系统自带的ssh(linux系统)或者putty(windows下的telnet、ssh命令)。
本文所要讲述的实现方法就是利用管道管道的概念,大家网上搜索这里还是通过直接show代码的方式进行讲述,另外进行了简单的封装和进一步的抽象大家可以直接使用,扩展起来也比较方便本文是基于win32,linux实现留给大家自己当着作业吧于此类似。
写函数实在是平淡无奇就是调用WriteFile,只要把句柄传递对叻就行这几个句柄是容易混淆,大家仔细阅读代码仔细理解。在读函数中使用了PeekNamedPipe函数,对管道进行数据读这个函数有个作用,即使管道中没有数据但会立即返回,不会读阻塞这个时候再调用ReadFile就不会阻塞了。同时使用Sleep函数就能简单的实现超时读的功能。这个是ReadFile辦不到的
大功告成,代码实现没有用到什么高级技巧但简单适用,大家不妨直接借用也许能帮助大家解决日常的工作问题。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。