⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pipe.c

📁 结合三星的4510ARM处理器 和VXworks 操作系统,的几个源程序,有助于开发嵌入式系统和加深了解VXWorks操作系统
💻 C
字号:


/*从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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -