EmbLogic's Blog

ipc server using fifo

#include”header.h”
#include”declaration.h”

int main()
{
int r1,p1,ret,len;
struct req res;
ret=access(“rq1″,F_OK);
if(ret <0)
{
ret=mkfifo(“rq1″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
ret=access(“rq2″,F_OK);
if(ret <0)
{
ret=mkfifo(“rq2″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
ret=access(“rq3″,F_OK);
if(ret <0)
{
ret=mkfifo(“rq3″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
ret=access(“pq1″,F_OK);
if(ret <0)
{
ret=mkfifo(“pq1″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
ret=access(“pq2″,F_OK);
if(ret <0)
{
ret=mkfifo(“pq2″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
ret=access(“pq3″,F_OK);
if(ret <0)
{
ret=mkfifo(“pq3″,0777);
if(ret<0)
{
perror(“mkfifo”);
return -1;
}
}
/////1st requesting client//////////////////
r1=open(“rq1″,O_RDONLY);
len=sizeof(struct req);
ret=read(r1,&res,len);

printf(“res.a=%d\nres.b=%d\nres.opr=%c\n”,res.a,res.b,res.opr);
///////1st processing client/////////////////
p1=open(“pq1″,O_WRONLY);
write(p1,&res,len);
close(p1);
p1=open(“pq1″,O_RDONLY);
read(p1,&res,len);
printf(“at server sum is = %d\n”,res.result);
close(r1);
r1=open(“rq1″,O_WRONLY);
write(r1,&res,len);
/////2nd requesting client//////////////////
close(r1);
r1=open(“rq1″,O_RDONLY);
len=sizeof(struct req);
ret=read(r1,&res,len);
printf(“ret =%d\n”,ret);

printf(“res.a=%d\nres.b=%d\nres.opr=%c\n”,res.a,res.b,res.opr);

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>