[완료] FIFO 를 사용하여 구조체 전송하는 방법
글쓴이: kgykingdom / 작성시간: 월, 2007/06/18 - 10:38오전
안녕하십니까.
제가 지금 IPC 로 네임드 파이프를 사용하여 프로그램을 하고 있습니다. 프로세스 통신할때 구조체를 FIFO 에 써서 통신하려고 하는데
프로그램이 제대로 수행이 되지 않아서 이렇게 도움을 청합니다.
구조체는 간단합니다. 타입하고 메시지만 정의 되어 있습니다.
process1.c
struct msg {
UINT2 msg_type;
UCHAR msg_context[20];
};
struct msg temp;
open(FIFO_FILE, O_WRONLY);
write(fd, &temp, sizeof(temp));
해서 프로세스 1에서 데이터를 전송하고,
process2.c
struct msg test;
open(FIFO_FILE, O_RDWR);
read(fd, &test, sizeof(test));
대충 이런식으로 구현을 했는데 프로세스 2에서 구조체를 읽어 들이지를 못하네요.. 원래는 read 할때 데이터가 없으면 프로세스 2가 block 되어야 정상인데. block 되지도 않고 그냥 프로그램이 끝나 버리기 까지 합니다. 대략 설명이 부족하지만 도움을 주시면 감사하겠습니다.
그럼 모두 즐거운 하루 되시길 바랍니다. ^^
Forums:
자문자답입니다. ㅡㅡ;;
write(fd, &temp, sizeof(temp));
read(fd, &test, sizeof(test));
해야 되는 것이군요.. ^^;;; 잘못 썼었습니다.. ㅎ
프로그램할때
프로그램할때 에러루틴넣으면 빠르게 원인을 알수 있어요.
댓글 달기