我正在写入管道,直到用户输入字符串“end”。如果用户输入字符串“end”,我想更进一步。在这里,我必须关闭管道并打印消息“写入管道后”。但即使我输入了“end”字符串,它也没有打印“写入管道后”行。即使没有读取管道的过程,我如何关闭管道并走得更远?..
嗨,这是我的代码。,
int main() {
int fd;
char *b, *c;
printf("Enter Str : ");
b = malloc(50);
gets(b);
while(strcmp(b,"end")!=0){
if(access("MSG",F_OK) != -1) // check pipe is already available.
{
fd = open("MSG", O_WRONLY);
write(fd, b, strlen(b) );
}
else
{
if( mkfifo("MSG", 0666) != -1) // create pipe if not available.
{
fd = open("MSG", O_WRONLY);
write(fd, b, strlen(b) );
}
}
printf("Enter Str : ");
gets(b);
}
close(fd);
printf("After Written to Pipe");
}