Hello,
I am porting a named pipe based applications and I am getting
an errno 16 which is "EBUSY" from ioctl (fd, I_SENDFD, pipe[1])
and also on other program from ioctl(fd,I_RECVFD, pipe[1])
1). I created the named pipe with "mknod server.pipe p" command
2). in Program A
functionA()
{
int dm_fd;
int ld_fd[2] = {-1,-1};
.
.
.
dm_fd = open(SERVER_PIPE,O_RDWR,0666);
Rc = pipe(ld_fd);
.
.
.
write(ld_fd[0],Request,sizeof(struct command_s)); /* This may be
out of sequence, I don't know ,
But I am writing on
0 */
.
.
io_rc = ioctl(dm_fd,I_SENDFD,ld_fd[1]);
/* I get an errno 16 (EBUSY) */
}
In Program B
FunctionB ()
{
int Sd;
struct strrecvfd Fds;
Sd = open(SERVER_PIPE,O_RDWR,0666);
.
.
fattach(Sd,SERVER_PIPE);
.
.
Rc = ioctl(Sd,I_RECVFD,&Fds);
/* I get an error EBUSY errno 16 */
}
Any help is greatly appreciated.
Received on Fri Apr 27 2001 - 17:22:11 NZST