что не так в этом коде? после посыла данных в fifo процесс начинает кушать все больше и больше процессорного времени
while(1)
{
fd_set fds;
FD_ZERO(&fds);
FD_SET(fd, &fds);
if(select(fd + 1, &fds, NULL, NULL, NULL) == -1)
{
if(errno == EINTR) continue;
fprintf(stderr, "select: %.100s (%i)\n", strerror(errno), errno);
close(fd);
exit(EXIT_FAILURE);
}
memset(buffer, '\0', sizeof(buffer));
if(FD_ISSET(fd, &fds))
{
if((f.n = read(fd, buffer, sizeof(buffer) - 1)) > 0)
{
fprintf(stdout, buffer);
}
}
}
![](/img/p.gif)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум select и non-blocking fifo (2007)
- Форум проблема с сокетами [C] (2009)
- Форум Как синхронизировать файловые потоки? (2024)
- Форум Помогите найти ошибку в следующем коде!!! (2004)
- Форум forkpty и read (2004)
- Форум создание дочерних процессов_ (2010)
- Форум socketpair + fdopen (2008)
- Форум select (2006)
- Форум Проблема с select (2002)
- Форум Чтение выхлопа процесса без ожидания его завершения (2019)