天嵌 ARM开发社区

 找回密码
 注册
查看: 1896|回复: 2

break没有跳出while(1) ?

[复制链接]
福大牛二爷 发表于 2012-12-31 10:23:33 | 显示全部楼层 |阅读模式
本帖最后由 福大牛二爷 于 2012-12-31 10:24 编辑
  1. while(1){
  2. /*
  3. ...............................................
  4. ...............................................
  5. ...............................................*/
  6. //strcpy(w_buf,"aaaaa");

  7. /* 向管道1 写入数据 */
  8. if((nwrite=write(fd1,w_buf,100))==-1)

  9. {

  10. if(errno==EAGAIN)

  11. printf("The FIFO has not been read yet.Please try later\n");

  12. }
  13. else
  14. printf("write %s to the FIFO1\n",w_buf);


  15. while(1)

  16. {



  17. if((nread=read(fd,buf_r,100))==-1)

  18. {

  19. if(errno==EAGAIN)

  20. printf("no data yet\n");

  21. }
  22. if((buf_r[0] > 0))//if receive data,print and write something to fifo1

  23. {
  24. printf("read %s from FIFO\n",buf_r);//在程序中可以打印出读到的而信息,但是没有跳出break???
  25. memset(buf_r,0,sizeof(buf_r));
  26. break;
  27. }
  28. else
  29. printf("no data... yet\n");

  30. sleep(1);
  31. }
  32. }

复制代码

问题题目了,不知道为什么我这个break没有跳出里面的那个while(1),这个已经读到了管道的信息了,别且已经打印出来了;

 楼主| 福大牛二爷 发表于 2012-12-31 10:55:51 | 显示全部楼层
我看了,就好像那个break只跳出if语句,没有跳出while 这个有点
 楼主| 福大牛二爷 发表于 2012-12-31 11:13:14 | 显示全部楼层
本帖最后由 福大牛二爷 于 2012-12-31 11:13 编辑

2.顺便问下,一个程序中可以创建两个有名管道吗? mkfifo()
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 05:04 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表