gpt4 book ai didi

c - (C) Windows 句柄和 Createprocess

转载 作者:行者123 更新时间:2023-11-30 17:47:58 24 4
gpt4 key购买 nike

与 unix 相比,我一直在尝试掌握 Windows 上句柄继承和应用程序内存共享的概念。

由于 Windows 不提供 fork() 或任何类似的东西,所以我一直在读取 createprocess 和句柄。

我仍然无法理解新进程如何读取从其 parent 传递给他们的句柄。我查看了 msdn 文档,似乎 ReadFile 是这里的答案,但不知道如何阅读它。

我想做的是客户端/服务器,服务器在套接字上传递。我使用 Winsock1,所以 WSAduplicate 不是一个选项。我读到套接字无法传递,但它们可以复制。(http://tangentsoft.net/wskfaq/articles/passing-sockets.html)

长话短说,假设我传递一个句柄值(例如 0x0000070)作为命令行参数,我如何将其转换为有效的句柄(即套接字)。

干杯,

**更新我知道这种方法并不理想,线程是解决这个问题的更好方法。但我们已明确要求创建子进程而不是线程。

最佳答案

根据应用程序的具体性质,典型的设计是在进程中使用多个线程。然后像socket这样的项目可以存储在全局中或传递套接字的地址,而不必担心继承问题。

请记住,服务器通常作为单独的进程运行,并且服务器代码通常与客户端代码有很大不同。

最后,冒着被否决的风险, fork 没有什么特别的。事实上,这是创建第二个过程的低级方法。如果您阅读 fork 模块的代码,它只是看起来很奇怪!!

关于c - (C) Windows 句柄和 Createprocess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18751042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com