От символа * к ручке

Я хочу отправить дескриптор трубы другим процессам. Чтобы отправить указатель, я преобразовал его в строку.

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

так что если значение дескриптора 0x00043c у меня память с "00043c", Я отправил это.

Я получаю это в правильной форме "00043c",

Я не могу перевести его обратно. Я попытался использовать sprintf снова, но это неправильно, как я понял позже.

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

я думал atoi будет делать, но в строке могут быть и символы. так что опять не получилось.

Как мне это сделать ?

0

Решение

Вы просто не можете. Адреса не могут быть разделены между процессами.

Если вы хотите разделить ресурс между двумя процессами, вам нужно создать общий ресурс или сохранить / отправить другие данные, чтобы другой процесс мог создать свой собственный дескриптор.

2

Другие решения

Попробуйте повысить межпроцессный режим, вы можете создать общую память

0

По вопросам рекламы [email protected]