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

关于一个管道的编程问题,请各位大侠帮忙看看!不胜感激!

    来源: 互联网  发布时间:2016-03-07

    本文导语:  我试图编写一个管道读写程序,代码如下: #include  #include  #include  #include  #define FIFO_SERVER "/tmp/fifoserver" int handle_client(char *); main(int argc,char **argv) { char r_buf[4096*2] ; int fd; int r_size; int ret_size; r_size=atoi(argv[...

我试图编写一个管道读写程序,代码如下:
#include 
#include 
#include 
#include 
#define FIFO_SERVER "/tmp/fifoserver"
int handle_client(char *);

main(int argc,char **argv)
{
char r_buf[4096*2] ;
int fd;
int r_size;
int ret_size;
r_size=atoi(argv[1]);
printf("requred real read bytes %dn",r_size);
memset(r_buf,0,sizeof(r_buf));

fd=open(FIFO_SERVER,O_RDONLY,0);

if ( fd == -1)
{
printf("open %s for read errorn");
exit();
}

while(1)
{
memset(r_buf,0,sizeof(r_buf));
ret_size=read(fd,r_buf,r_size);
if (ret_size ==-1)
if(errno==EAGAIN)
printf("no data avlaiblen");
printf("real read tytes %dn",ret_size);
sleep(1);
}
pause();
unlink(FIFO_SERVER);
}

在ret hat 9编译后,运行结果如下:
[wollt@wollt file2]$ nbr 1000
requred real read bytes 1000
open (null) for read error
这个宏(#define FIFO_SERVER "/tmp/fifoserver"
)我不知道是什么意思?
请问问题出在哪?谢谢了!

|
ls -l /tmp/fifoserver
看看有没有这个文件
没有就要建立

printf("open %s for read errorn");
这句是不是有问题,

|

fd=open(FIFO_SERVER,O_RDONLY,0); 换成
fd=open(FIFO_SERVER,O_RDONLY|O_CREAT,0);

exit(); 换成exit(-1);



printf("open %s for read errorn"); 换成
printf("open for read errorn"); 


这个宏(#define FIFO_SERVER "/tmp/fifoserver"
)我不知道是什么意思?


这个宏定义你就把它看成简单的字符串替换就行了。在这就是定义了一个管道路径.

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












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


  • 站内导航:


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

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

    浙ICP备11055608号-3