Я пытаюсь создать FIFO именованный канал, используя команду MKNOD():MKNOD() не создает именованный канал
int main() {
char* file="pipe.txt";
int state;
state = mknod(file, S_IFIFO & 0777, 0);
printf("%d",state);
return 0;
}
Но файл не создается в моем текущем каталоге. Я пробовал перечислить его ls -l
. Состояние возвращает -1.
я нашел подобные вопросы здесь и на других сайтах, и я попробовал решение, которое наиболее предложенное:
int main() {
char* file="pipe.txt";
int state;
unlink(file);
state = mknod(file, S_IFIFO & 0777, 0);
printf("%d",state);
return 0;
}
Это не имеет никакого значения, хотя и ошибка остается. Я делаю что-то неправильно здесь или есть какое-то системное вмешательство, которое вызывает эту проблему?
Помощь .. Заранее спасибо
Вы не можете просто 'Е (состояние)'. 'state' является' int'. Вам понадобится 'printf ("% d \ n ", state)'. – larsks
о, да ... только печатная ошибка. Спасибо – aashima