최근 IPC에 대해 배우기 시작했고 몇 가지 문제가 있습니다. 잠재적 인 오류를 처리하지 않는파이프를 통한 서버/클라이언트 통신
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
int pfds[2];
char buf[30];
pipe(pfds);
if (!fork())
{
printf(" CHILD: writing to the pipe\n");
write(pfds[1], "test", 5);
printf(" CHILD: exiting\n");
exit(0);
}
else
{
printf("PARENT: reading from pipe\n");
read(pfds[0], buf, 5);
printf("PARENT: read \"%s\"\n", buf);
wait(NULL);
}
return 0;
}
죄송합니다, 나는 단순화를 위해 다음과 같이 썼습니다 :이 같은 파이프를 통해 통신하는 두 개의 프로세스를 생성하는 프로그램을 작성.
이 훌륭한 작동하지만 내 질문은 : 서버/클라이언트 (두 개의 개별 실행 파일 - 부모 프로세스/자식 프로세스 관계가 아닌) 파이프를 통해 통신하는 두 가지 프로그램이있을 가능성이 있습니까? FIFO를 통해 할 수있는 것처럼?
감사합니다.
mkfifo()가 귀하의 필요를 충족시킬 수도 있습니다. – waitingkuo
예, 알고 있습니다. FIFO를 통해이를 수행하는 방법을 알고 있지만 파이프를 통해서도 가능한지 궁금합니다. –