如果不通过则不要进入
Don't enter on if and don't pass through
我有一个 if 语句:
printf("name");
if((fp = fopen(path, "r")) == NULL) {
perror("fopen");
exit(1);
}
printf("name2");//Debug propose
while(fgets(mensagem,250,fp)!=NULL){
printf("%s",mensagem);
}
fclose(fp);
出于某种原因,name2
从未被打印但 name
被打印,path
是一个 Fifo:
mknod(path, S_IFIFO|0666, 0);
来自 FIFO 手册页 (http://man7.org/linux/man-pages/man7/fifo.7.html):
Normally, opening the FIFO blocks until the other end is opened also.
也就是说,除非您以非阻塞模式显式打开它。
因此,我希望您的进程在 fopen()
调用中挂起,直到有人也打开 fifo 进行写入。
我有一个 if 语句:
printf("name");
if((fp = fopen(path, "r")) == NULL) {
perror("fopen");
exit(1);
}
printf("name2");//Debug propose
while(fgets(mensagem,250,fp)!=NULL){
printf("%s",mensagem);
}
fclose(fp);
出于某种原因,name2
从未被打印但 name
被打印,path
是一个 Fifo:
mknod(path, S_IFIFO|0666, 0);
来自 FIFO 手册页 (http://man7.org/linux/man-pages/man7/fifo.7.html):
Normally, opening the FIFO blocks until the other end is opened also.
也就是说,除非您以非阻塞模式显式打开它。
因此,我希望您的进程在 fopen()
调用中挂起,直到有人也打开 fifo 进行写入。