• 大小: 2.83KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-03-26
  • 语言: 其他
  • 标签: 其他  

资源简介


管道通信的综合实验,详情看博客http://blog.csdn.net/mybelief321

资源截图

代码片段和文件信息

/*pipe_select.c*/
#include
#include
#include
#include
#include
#include
#include

#define FIFO1      “in1“
#define FIFO2    “in2“
#define MAX_BUFFER_SIZE     1024  //缓冲区大小
#define IN_FILES 3  //多路复用输入文件数目
#define TIME_DELAY  60   //超时值秒数
#define MAX(ab)    ((a>b)?(a):(b)) 

int main(void)
{
int fds[IN_FILES];  //管道描述符
char buf[MAX_BUFFER_SIZE]; 
int iresreal_readmaxfd;
struct timeval tv; 
fd_set  insettmp_inset;//文件描述符集

fds[0]=0;  //终端的文件描述符
/*创建两个有名管道*/
if(access(FIFO1F_OK)==-1)
{
if((mkfifo(FIFO10666)<0)&&(errno!=EEXIST))
{
printf(“Cannot create fifo1 file\n“);
exit(1);
}
}

if(access(FIFO2F_OK)==-1)
{
if((mkfifo(FIFO20666)<0)&&(errno!=EEXIST))
{
printf(“Cannot create fifo2 file\n“);
exit(1);
}
}

/*以只读非阻塞方式打开两个管道文件*/
if((fds[1]=open(FIFO1O_RDONLY|O_NONBLOCK))<0)
{
printf(“Open in1 error\n“);
return 1;
}

if((fds[2]=open(FIFO2O_RDONLY|O_NONBLOCK))<0)
{
printf(

评论

共有 条评论