Я хочу отправить дескриптор трубы другим процессам. Чтобы отправить указатель, я преобразовал его в строку.
sprintf(handleToChar, "%p", handle);
так что если значение дескриптора 0x00043c
у меня память с "00043c"
, Я отправил это.
Я получаю это в правильной форме "00043c"
,
Я не могу перевести его обратно. Я попытался использовать sprintf снова, но это неправильно, как я понял позже.
sprintf((char*)handle, "%s", handleToChar); // <-- wrong
я думал atoi
будет делать, но в строке могут быть и символы. так что опять не получилось.
Как мне это сделать ?
Вы просто не можете. Адреса не могут быть разделены между процессами.
Если вы хотите разделить ресурс между двумя процессами, вам нужно создать общий ресурс или сохранить / отправить другие данные, чтобы другой процесс мог создать свой собственный дескриптор.
Попробуйте повысить межпроцессный режим, вы можете создать общую память