24 int add_buffer(pid_t pid
, char *bufname
)
26 struct buffer_info
*buf
;
31 buf
= (struct buffer_info
*) malloc(sizeof(struct buffer_info
));
33 ERR("add_buffer: insufficient memory");
41 asprintf(&send_msg
, "get_shmid %s", buf
->name
);
42 send_message(pid
, send_msg
, &received_msg
);
45 result
= sscanf(received_msg
, "%d", &buf
->shmid
);
47 ERR("unable to parse response to get_shmid");
53 asprintf(&send_msg
, "get_n_subbufs %s", buf
->name
);
54 send_message(pid
, send_msg
, &received_msg
);
57 result
= sscanf(received_msg
, "%d", &buf
->nsubbufs
);
59 ERR("unable to parse response to get_shmid");
65 buf
->mem
= shmat(buf
->shmid
, NULL
, 0);
66 if(buf
->mem
== (void *) 0) {
74 int main(int argc
, char **argv
)
76 struct ustcomm_ustd ustd
;
79 result
= ustcomm_init_ustd(&ustd
);
81 ERR("failed to initialize socket");
88 ustcomm_ustd_recv_message(&ustd
, &recvbuf
, NULL
);
90 if(!strncmp(recvbuf
, "collect", 7)) {
95 result
= sscanf(recvbuf
, "%*s %d %50as", &pid
, &bufname
);
97 fprintf(stderr
, "parsing error: %s\n", recvbuf
);
100 add_buffer(pid
, bufname
);
This page took 0.037844 seconds and 5 git commands to generate.