Hi!
Za IPC sem izbral FIFO named pipe.
In sicer "mkfifo /tmp/test --mode=0777"
v enem oknu pozenem "cat bljuz > /etc/test"
v drugem pa dodani programcek:
-----------------------------------------
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <fcntl.h>
#include <unistd.h>
int main(){
int fd,i;
char ch[1];
fd_set sel_set;
umask(0);
fd=open("/tmp/test",O_RDONLY | O_NONBLOCK);
if (-1==fd) {
printf("\niiiiiiiiiikkkkkkkkk\n");
return(2);
}
FD_ZERO(&sel_set);
FD_SET(fd,&sel_set);
printf("\nBu1!\n");
while (-1!=select(fd+1,&sel_set,NULL,NULL,NULL)) {
if (FD_ISSET(fd,&sel_set)) {
printf("fd is set!\n");
i=read(fd,ch,1);
printf("%c",ch[0],i);
} else {
printf("\nI was woken up but there is no data!\n");
return(1);
}
FD_ZERO(&sel_set);
FD_SET(fd,&sel_set);
}
printf("\nselect()\n");
return(0);
}
-----------------------------------------
zadeva se zacilkla :(.
select() sprva caka brez problema nato pa se aktivira vsakic, ceprav ni vec
podatkov (read vrne 0 in kot podatek EOF). Wtf?
--
best regards,
Rok Papez.