break没有跳出while(1) ?
本帖最后由 福大牛二爷 于 2012-12-31 10:24 编辑while(1){
/*
...............................................
...............................................
...............................................*/
//strcpy(w_buf,"aaaaa");
/* 向管道1 写入数据 */
if((nwrite=write(fd1,w_buf,100))==-1)
{
if(errno==EAGAIN)
printf("The FIFO has not been read yet.Please try later\n");
}
else
printf("write %s to the FIFO1\n",w_buf);
while(1)
{
if((nread=read(fd,buf_r,100))==-1)
{
if(errno==EAGAIN)
printf("no data yet\n");
}
if((buf_r > 0))//if receive data,print and write something to fifo1
{
printf("read %s from FIFO\n",buf_r);//在程序中可以打印出读到的而信息,但是没有跳出break???
memset(buf_r,0,sizeof(buf_r));
break;
}
else
printf("no data... yet\n");
sleep(1);
}
}
问题题目了,不知道为什么我这个break没有跳出里面的那个while(1),这个已经读到了管道的信息了,别且已经打印出来了;
我看了,就好像那个break只跳出if语句,没有跳出while 这个有点{:2_124:} 本帖最后由 福大牛二爷 于 2012-12-31 11:13 编辑
2.顺便问下,一个程序中可以创建两个有名管道吗? mkfifo()
页:
[1]