Создал именованный канал, открыл на чтение, запускаю код. Программа висит и как будто ждет чего-то

Это нормальное поведение и в FIFO нужно действительно что-то лить?
Код примитивный:
Код
...
int main(void)
{
if ( mknod(FIFO, S_IFIFO|0666, 0) == -1 ) {
perror("pipe() error");
exit(1);
}
printf("mknod() succedded\n");
// эта строка выводится на экран, после чего помогает только Ctrl+C
return 0;
}
int main(void)
{
if ( mknod(FIFO, S_IFIFO|0666, 0) == -1 ) {
perror("pipe() error");
exit(1);
}
printf("mknod() succedded\n");
// эта строка выводится на экран, после чего помогает только Ctrl+C
return 0;
}