資源簡(jiǎn)介
管道通信的綜合實(shí)驗(yàn),詳情看博客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??//緩沖區(qū)大小
#define?IN_FILES 3??//多路復(fù)用輸入文件數(shù)目
#define?TIME_DELAY??60???//超時(shí)值秒數(shù)
#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;??//終端的文件描述符
/*創(chuàng)建兩個(gè)有名管道*/
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);
}
}
/*以只讀非阻塞方式打開(kāi)兩個(gè)管道文件*/
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(
評(píng)論
共有 條評(píng)論