void epoll_func(epoll_event event){
char str[BUFSIZE] = {'\0'};
int c =0;
if(event.data.fd == connfd && EPOLLIN){
while(true){
c = read( connfd, str, BUFSIZE);
write( 1, str, c);
if(c<BUFSIZE)
break;
}
}else if( event.data.fd == 0 && EPOLLIN ){
while(true){
c = read( 0, str, BUFSIZE);
send( connfd, str, c, 0);
if(c<BUFSIZE)
break;
}
}
}
Записывать данные в мастер, а также читать данные для записи самостоятельно. Как сделать?
Спасибо большое.
Вы испортили полученную структуру epoll_event, которая состоит из поля события и union
содержащий данные. Я полагаю, вы хотите сделать что-то вроде следующего:
struct epoll_event e;
uint32_t e_type = e.events;
int fd = e.data.fd;
if (fd == myfd) {
if (events && EPOLLIN)) {
/* my watched fd and can be read from */
}
if (events && EPOLLOUT) {
/* my watched fd and can be written to */
}
}
Других решений пока нет …