-
Creating FIFO's
hi
i've been using knoppix for a few weeks because of a class at the university. this class is basically learning how to create processes in linux using C language.
the problem i'm having is the following:
im tying to use the named pipes, known as FIFO's. the thing is, when i try to create a normal unnamed pipe, it creates it and works without any problem. however, when i want to create a FIFO, it doesn't create it.
it's not a instructional error, as i've shown this problem to my teacher.
he said it might be because simply knoppix doesn't give me permitions to create this FIFO.
any sugestions on what I should do, if in fact there is something i can do?
thanx
-
How are you creating this FIFO? What is the exact mkfifo invocation you're using?
-
sorry about the delay... no internet acess for the last few days!
the code i'm using is:
Code:
unlink("temp_fifo");
mknod("temp_fifo",S_IFIFO|0660,0);
when testing this last line, it returns (-1), which means that the creation on the FIFO failed.
anyway, i hope this brings new light to someone who might be able to help me out...
thanx
-
Okay, include <errno.h> and <stdio.h>, then add:
Code:
perror(NULL);
after the mknod() so that you can see what the exact error was.
-
Ok, i'll do that.
I've been told by a friend that Knoppix really doesn't allow the creation of FIFO's, but still there could be a way...
thanks
-
Ok, so this is what came up:
Code:
Operation Not Permitted
a bit generalistic, i guess...
Maybe knoppix really doens allow the creation of FIFO's.
-
Are you root at the time?
-
yes,i am... any suggestions yet, or are you as lost as me?
-
Well according to
, "Operation not Permitted" is associated with EPERM. According to mknod(2):
Code:
EPERM mode requested creation of something other than a regular file,
FIFO (named pipe), or Unix domain socket, and the caller is not
privileged (Linux: does not have the CAP_MKNOD capability); also
returned if the filesystem containing pathname does not support
the type of node requested.
What kind of filesystem are you trying this on?