操作系统相关
操作系统相关
thefist11
难以忘记编程路上领导和好友的细致指导,所以必须努力!(真诚希望大家多多指导!)
展开
-
编译原理 之 解释器
1. 人的语言最终转换成机器语言2. 解释器解释器是一种计算机程序,把源代码翻译成相对更加高效率的中间码,然后立即执行它。3. vs 编译器字节码 Byte Code字节码是由一堆指令集组成的代码,例如在javac编译过后的java源码产生的就是字节码。源码在编译的过程中,是需要进行「词法分析 → 语法分析 → 生成目标代码」等过程的,在预编译的过程中,就完成这部分工作,生成字节码。然后在后面交由解释器(这里通常指编程语言的虚拟机)解释执行,省去前面预编译的开销。机器码 Machin原创 2021-05-24 21:17:36 · 798 阅读 · 0 评论 -
进程间通信(7) “剪贴板“、“匿名管道“、“命名管道“、“邮槽“4种方式总结
1.剪贴板和匿名管道只能同一-台机器上命名管道和邮槽还可以实现跨网络的进程间通信;邮槽是基于广播通信的,可以一对多的单向通信, 数据量较小,通常都是在424字节以下命名管道只能点对点的单一的通信2. ReadFile、CreateFile、WriteFile3个核心函数读取数据: BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer,原创 2020-12-10 10:40:39 · 188 阅读 · 0 评论 -
进程间通信(6) 邮槽
邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户端写入数据。邮槽可以实现一对多的单向通信。但是数据量小,通常都是424字节以下。假设client1先send,client2再send,最后server可以连续receive两次如果是网络通信,server的名称写".",client写服务器电脑名或ip地址 1. 过程a. server 先CreateMailslotb. client 再CreateFil.原创 2020-12-10 10:35:49 · 333 阅读 · 0 评论 -
进程间通信(5) 命名管道2 不同机器通信
不同机器的通信我一直没解决,现记录下来,以后再看,也欢迎指点!看资料说是先connectipc一下.结果我connectIpc错误。执行cmd命令"net use \192.168.28.34\ipc$ f21 /user:Administrator" 也是错误:发生系统错误 53。BOOL ConnetIPC(const char* RemoteName, const char* User, const char* PassWord){ char tmp[128] = "\\原创 2020-12-10 10:31:24 · 321 阅读 · 0 评论 -
进程间通信(5) 命名管道
可以在本机上实现两个进程间的通信 支持跨网络进程间的通信。 在创建管道时,可以指定具有访问权限的用户,而其他用户则不能访问这个管道。将命名管道作为一种网络编程方案时,它实际上建立了一个客户机/服务器通信体系,并在其中可靠地传输数据。采用“命名管道文件系统(Named Pipc File System,NPFS)”接口,因此,客户机和服务器可利用标准的Win32文件系统函数(例如ReadFile和WriteFile)来进行数据的收发。命名管道服务器和客户机的区别在于:服务器是惟一一个有权创建命名管道.原创 2020-12-09 12:44:34 · 348 阅读 · 0 评论 -
进程间通信(4) 匿名管道
匿名管道没有名称,所以只能在父进程中调用CreateProcess函数创建子进程时,将管道的读、写句柄传递给子进程。匿名管道只能实现本地机器上两个进程间的通信,而不能实现跨网络的通信。1. 过程:a. createpipe得到hWrite和hRead两句柄b. 将hWrite和hRead通过createprocess传递给子进程c. 子进程通过GetStdHandle获取 hWrite和hReadd. 你读我写read: char buf[100]; DWORD dwRead;.原创 2020-12-08 19:55:57 · 209 阅读 · 0 评论 -
进程间通信(3) 剪贴板
1. 步骤a. 打开剪贴板 BOOL OpenClipboard () b. 清空剪贴板 EmptyClipboard() c. 设置剪贴板数据 HANDLE SetClipboardData(UINT uFormat,HANDLE hMem ) ;d. 得到剪贴板数据 HANDLE GetClipboardData(UINT uFormat)2. HANDLE SetClipboardData(UINT uFormat,HANDLE hMem ) ;uFormat剪贴板格式, 得注.原创 2020-12-08 19:03:33 · 284 阅读 · 0 评论 -
进程间通信(2) 内存映射FileMap
1.文件映射对象。文件映射对象是内核对象,它从系统的分页文件中获得一段内存。所有内核对象都共享同一个名字空间,所以名称不能重复。其他内核对象还有:事件,信号,互斥对象2. 创建一个文件映射对象。为文件映射指明一个大小和名称。windows api:CreateFileMapping3. 对内核对象进行读写操作windows api:MapViewOfFile4. 示例 FULL_MAP_NAME 用来标记文件映射对象server // Prepare a message t原创 2020-12-07 14:24:38 · 477 阅读 · 0 评论 -
进程间通信(1) dll 实现进程的内存共享
1. 两个进程访问同一个dll2.写入时复制(CopyOnWrite,简称COW)思想如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者, 只有更新操作,才会去复制一份新的数据并更新替换,否则都是访问同一个资源。3.1 dll:#pragma data_seg("MySec")int nDate = 0;#pragma da原创 2020-12-05 15:56:08 · 1151 阅读 · 0 评论
分享