pipe.c

来自「结合三星的4510ARM处理器 和VXworks 操作系统,的几个源程序,有助于」· C语言 代码 · 共 85 行

C
85
字号


/*从shell里面  ->sp start
			   ->sp writepipe	            */


#include "vxworks.h"
#include "fcntl.h"


#define PIPEHI "/pipe/highpipe"
#define PIPELOW "/pipe/lowpipe"
#define MAXNUM 10
#define MAXSIZE 100

char fds[2];

STATUS start()
{
	struct fd_set readFds;

	int width,i;
	char buf[MAXSIZE];

	pipeDevCreate(PIPEHI,MAXNUM,MAXSIZE);
	pipeDevCreate(PIPELOW,MAXNUM,MAXSIZE);

	if(fds[0]=open(PIPEHI,O_RDONLY,0)==ERROR)
		close(fds[0]);
	if(fds[1]=open(PIPELOW,O_RDONLY,0)==ERROR)
	{
		close(fds[0]);
		close(fds[1]);
		return ERROR;
	}

	FOREVER
	{
		FD_ZERO(&readFds);
		FD_SET(fds[0],&readFds);
		FD_SET(fds[1],&readFds);

		fds[1]=1;

		width=(fds[0]>fds[1])?fds[0]:fds[1];
		width++;

		if(select(width,&readFds,NULL,NULL,NULL)==ERROR)
		{
			close(fds[0]);
			close(fds[1]);
			return ERROR;		
		}

		for(i=0;i<2;i++)
		{
			if(FD_ISSET(fds[i],&readFds)==1)
			{
				read(fds[i],buf,MAXSIZE);
				printf("read message from pipe %s:%s",(i==0)?PIPEHI:PIPELOW,buf);

			}


		}
		


	}



}


void writepipe()
{
	write(fds[0],"Howdy",6);
	write(fds[1],"Urgent",7);


}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?