Reputation: 5911
The above program i have typed in linux. It basically has to connect a client and server in separate terminals. But when i run them in the correct order, i.e
The terminals just dont do anything. It doesnt even print the "Trying to connect"
part of the first printf
statement. What is the mistake here?
EDIT
I checked for return value of mkfifo
as @parapura rajkumar said. But Still it remains the same. Here is my changed code for server.
if(mkfifo("fifo1",0666)<0) {
printf("Error");
}
if(mkfifo("fifo2",0666)<0) {
printf("Error");
}
fflush(stdout);
Upvotes: 0
Views: 2661
Reputation: 69
You made deadlock. Server wait open("fifo1",O_RDONLY) and client wait open("fifo2",O_RDONLY).
Edit client.c:
int writefd = open("fifo1",O_WRONLY);
int readfd = open("fifo2",O_RDONLY);
Upvotes: 2