2016-11-01 9 views
0

파이프를 통해 간단한 클라이언트/서버 인터페이스를 만들고 있습니다. 서버가 클라이언트로부터 요청을 받으면 처리기 프로세스를 생성합니다. 대부분의 데이터는 구조체의 배열 내에서 유지되도록C에서 부모 프로세스와 자식 프로세스간에 구조체 배열을 공유하려면 어떻게해야합니까?

나는 지금 대략적인 구현을하고 있어요 : 내가 필요

struct data{ 
    int value; 
    char* description; 
} 

struct data events[100]; 

에, 자식 프로세스는 편집을 포함하는 (그 작업을 완료 한 후 배열 내의 구조체는 클라이언트가 전달한 값과 설명을 갖습니다.)이 데이터를 서버로 다시 보내고 서버의 이벤트 [] 배열을 새로 고치십시오. 그러면 다른 요청에서 다시 포크 할 때 포크가 올바른 데이터를 갖습니다. 정렬.

이 작업을 수행하려면 어떻게해야합니까?

답변

1

Shared memory이 가장 먼저 떠오르는 문제입니다.

또는 이미 요청한 파이프 위에 비트를 밀면됩니다.

+0

구조체 배열을 파이프를 통해 어떻게 보낼 수 있습니까? – Ajv2324

+1

@ Ajv2324 :'write (pipe_fd, array, sizeof (array [0]) * num_items);' –