다른 프로세스에 파이프 핸들을 보내려고합니다. 포인터를 보내려면 문자열로 변환해야합니다. 핸들 값 0x00043c
경우 char *에서 Handle까지
sprintf(handleToChar, "%p", handle);
그래서
"00043c"
을 갖는 메모리를 얻는다. 내가 그것을 보냈다.
"00043c"
의 올바른 형식으로 수신합니다.
다시 변환 할 수 없습니다. 나는 sprintf를 다시 사용해 보았지만 나중에 깨달았을 때 그 점은 잘못되었습니다.
sprintf((char*)handle, "%s", handleToChar); // <-- wrong
은 내가
atoi
할 것입니다하지만 너무 문자열의 문자가있을 수있다 생각했다. 그래서 그것은 다시 실패했다.
어떻게 할 수 있습니까?
이것은 단순히 작동하는 방식이 아닙니다. 가상 주소 공간에서 읽기 - 모든 프로세스마다 고유 한 방법이 있습니다. –