[완료] 구조체 내의 동적 메시지 전송에 대한 질문입니다. (FIFO)

kgykingdom의 이미지

FIFO 를 써서 메시지를 구조체로 만들어 전송하는 프로그램을 짜고 있는데, 메시지가 재대로 전송 되지 않습니다.

[code]
struct msg {
UINT2 type; // 2byte
UINT2 len;
UCHAR *context
}

struct msg temp;

temp.context = (void *)malloc(4);
memcpy(temp.context, "test", 4);
temp.len = strlen(temp.context);
temp.type = 0x01;

write (fd, &temp, sizeof(temp));
[/code]

읽을 때는

[code]struct msg *temp;

read(fd, temp, 4); // 앞에 4 byte 를 읽어서 메시지 length 를 읽음

temp->context = (void *)malloc(temp->len);

read(fd, temp->context, temp->len);[/code]

이런식으로 읽었는데. 이상한 문자만 받아오네요.. length 까지는 잘 받아 옵니다. (앞에 4byte)

시간이 급한데, 이것만 잡고 있을 수 없어서. 고수님 들에게 도움을 청합니다.

그럼 좋은 하루 되세요.

bushi의 이미지

write 가 글러먹었습니다.
.context 의 contents 가 아니라 address 가 전송되겠군요.

read 는 잘 하시고서. 왜 그러셨을까.

kgykingdom의 이미지

답변 감사합니다.