从字符 * 到句柄

From char * to Handle

本文关键字:句柄 字符      更新时间:2023-10-16

我想将管道句柄发送到其他进程。为了发送指针,我将其转换为字符串。

   sprintf(handleToChar, "%p", handle);

因此,如果句柄的值为 0x00043c,我会得到一个带有 "00043c" 的内存。我发送它。

我以正确的"00043c"形式收到它.

我无法将其转换回来。我再次尝试使用 sprintf,但这是我后来意识到的,这是错误的。

 sprintf((char*)handle, "%s", handleToChar); // <-- wrong

我以为atoi可以,但字符串中也可以有字符。 所以它又失败了。

我该怎么做?

你根本做不到。地址不能在进程之间共享。

如果要在两个进程之间共享资源,则必须创建共享资源,或保存/发送其他数据,以便另一个进程可以创建自己的句柄。

尝试提升进程间,您可以创建共享内存