头文件:tapdisk-ipc.h
typedef struct td_ipc_handle {
int rfd; //读文件描述符
int wfd;//写文件描述符
event_id_t rfd_event;
td_uuid_t uuid;
} td_ipc_t;
这是tapdisk2的ipc 数据结构,,,
tapdisk-ipc.c
tapdisk_ipc_open(td_ipc_t *ipc, const char *read, const char *write) /*分别打开一个读和写文件描述符*/
{
int err;
memset(ipc, 0, sizeof(td_ipc_t));
__tapdisk_ipc_init(ipc);
if (read) {
ipc->rfd = open(read, O_RDWR | O_NONBLOCK);
if (ipc->rfd < 0) {
,,,,
}
ipc->rfd_event =
tapdisk_server_register_event(SCHEDULER_POLL_READ_FD,
ipc->rfd, 0,
tapdisk_ipc_read_event,
ipc);
if (ipc->rfd_event < 0) {
,,,,
}
}
if (write) {
ipc->wfd = open(write, O_RDWR | O_NONBLOCK);
if (ipc->wfd < 0) {
,,,,,
}
}
return 0;
fail:
tapdisk_ipc_close(ipc);
return err;
}