当前位置:  技术问答>linux和unix

管道操作时发生阻塞

    来源: 互联网  发布时间:2015-07-09

    本文导语:  大家帮忙看看这段程序: 这段程序建立了一个管道,然后检查是否从管道中收到了某一字符串。 程序执行时有时很正确,有时会在执行了printf就不知道停到那个地方了。想不出什么原因。 sprintf(buffer,"testping %s",serve...

大家帮忙看看这段程序:
这段程序建立了一个管道,然后检查是否从管道中收到了某一字符串。
程序执行时有时很正确,有时会在执行了printf就不知道停到那个地方了。想不出什么原因。

sprintf(buffer,"testping %s",serverName);
fp = popen(buffer,"rw");
if (fp!=NULL)
{
    do
    {
        if (fgets(buffer,80,fp)!=NULL)
        {
            if (strstr(buffer,"is up")!=NULL)
                ret=1;
            printf("testping returned %d %s",ret,buffer);
        }
    }while ( (feof(fp)==0) && ret==0);
    pclose(fp);
}

|
打开方式用"r"就可以了啊。
如果还有问题的话,用gdb跟踪一下了。

|
有时会在执行了printf就不知道停到那个地方了
////////////
肯定是陷入  dowhile死循环了,在循环内的  if 内外各加上一调试语句看看。

|
你给贴全了吧。。。。连头文件一起帖上

|
if (strstr(buffer,"is up")!=NULL)
strstr什么意思??

|
popen 的第一个参数应该是一个可执行程序啊!!!
你哪个好象是一个字符串吧!!!

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux管道问题,管道建立后如何同步?
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • 1哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • (100)"断开的管道" 在Socket编程当中,如果我连续发送包,例如1000次,总会出现"断开的管道"的错误提示,请问如何解决
  • 管道(|)是怎么实现的?
  • 我用管道作为一个程序的标准输入时,程序报错说不是一个终端不能做为标准输入,请问怎么样管道成为它的标准输入呢???具体错误信息见内
  • 多进程通讯的管道相关问题
  • 请问何时删除命名管道哪?
  • Linux下面的"匿名管道",是否对应着某种实体?
  • 串口和管道诡异的问题,在线急等解答
  • linux进程管道通信
  • 请问如何让自己编写的Shell程序支持管道?
  • 如何实现管道和后台进程
  • 关于有名管道的权限问题?
  • 命名管道问题
  • linux 管道通信
  • 关于管道的用法
  • 请教大家一个关于管道的问题
  • 创建了一个管道,写入数据正确,读数据失败。为什么?
  • 什么原因可以造成管道破裂?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3