福大牛二爷 发表于 2012-12-31 10:23:33

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),这个已经读到了管道的信息了,别且已经打印出来了;

福大牛二爷 发表于 2012-12-31 10:55:51

我看了,就好像那个break只跳出if语句,没有跳出while 这个有点{:2_124:}

福大牛二爷 发表于 2012-12-31 11:13:14

本帖最后由 福大牛二爷 于 2012-12-31 11:13 编辑

2.顺便问下,一个程序中可以创建两个有名管道吗? mkfifo()
页: [1]
查看完整版本: break没有跳出while(1) ?