所以我们正在尝试做什么:
我要求用户输入一些句子
每当他想要停止时,他都会按Q(首字母)
我现在得到的是什么:
这是一个FIFO程序。如果你看到任何其他错误,请报告它们。谢谢!
以下是代码:
#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/stat.h>
void main()
{
int i=0,fd;
char str[500]="",ch;
char *myfifo="/home/rahulp/Desktop/myfifo";
mkfifo(myfifo,0666);
printf("Enter the sentences:");
while((ch=fgetc(stdin))!='Q')
{
printf("ch===%c",ch);
str[i++]=ch;
}
str[i]='\0';
fd=open(myfifo,O_WRONLY);
if(fd<0)
{
printf("Cannot open fifo");
}
else
{
write(fd,str,strlen(str));
}
close(fd);
unlink(myfifo);
}
答案 0 :(得分:0)
忽略mkfifo正在发生的事情的可能性,这就是你应该如何阅读stdin:
int ch;
printf("Enter the sentences:");
fflush(stdout);
while ((ch = fgetc(stdin)) != EOF)
{
if (ch == 'Q')
break;
printf("ch=%c\n", ch);
str[i++]=ch;
}
str[i]='\0';