ユーザーが文字列「end」を入力するまで、パイプに書き込みます。ユーザーが文字列「end」を入力すると、さらに先に進むと思います。ここでは、パイプを閉じて、「After Written to Pipe」というメッセージを出力する必要があります。しかし、「end」文字列を入力しても「After Written to Pipe」という行は印刷されません。パイプを読み取るプロセスがなくても、パイプを閉じてさらに先に進むにはどうすればよいですか?..
こんにちは、これが私のコードです。
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");
}