hw9.13

a.

#include 
int main(int argc, const char *argv[])
{
	if(mkfifo("./pipe1.c",0664)<0)
	{
		if(errno!=17)
		{
			perror("mkfifo");
			return -1;
		}
	}
	if(mkfifo("./pipe2.c",0664)<0)
	{
		if(errno!=17)
		{
			perror("mkfifo");
			return -1;
		}
	}

	printf("mkfifo sucess\n");

	pid_t p=fork();
	char buf[128]="";
	if(p>0)//发送
	{	
		int f2=open("./pipe2.c",O_WRONLY);
		while(1)
		{
			bzero(buf,sizeof(buf));
			printf("发送A:");
			fgets(buf,sizeof(buf),stdin);
			if(strcmp(buf,"quit")==0) break;
			write(f2,buf,strlen(buf));
		}
		close(f2);
	}
	if(p==0)//接收
	{	
		int f1=open("./pipe1.c",O_RDONLY);
		while(1)
		{
			bzero(buf,sizeof(buf));
			fgets(buf,sizeof(buf),stdin);
			if(strcmp(buf,"quit")==0) break;
			read(f1,buf,sizeof(buf));
			printf("接收B:%s\n",buf);
		}
		close(f1);
	}

	return 0;
}

b.

#include 
int main(int argc, const char *argv[])
{
	if(mkfifo("./pipe1.c",0664)<0)
	{
		if(errno!=17)
		{
			perror("mkfifo");
			return -1;
		}
	}
	if(mkfifo("./pipe2.c",0664)<0)
	{
		if(errno!=17)
		{
			perror("mkfifo");
			return -1;
		}
	}

	printf("mkfifo sucess\n");

	pid_t p=fork();
	char buf[128]="";
	if(p>0)//发送
	{	
		int f2=open("./pipe1.c",O_WRONLY);
		while(1)
		{
			bzero(buf,sizeof(buf));
			printf("发送B:");
			fgets(buf,sizeof(buf),stdin);
			if(strcmp(buf,"quit")==0) break;
			write(f2,buf,strlen(buf));
		}
		close(f2);
	}
	if(p==0)//接收
	{	
		int f1=open("./pipe2.c",O_RDONLY);
		while(1)
		{
			bzero(buf,sizeof(buf));
			fgets(buf,sizeof(buf),stdin);
			if(strcmp(buf,"quit")==0) break;
			read(f1,buf,sizeof(buf));
			printf("接收A:%s\n",buf);
		}
		close(f1);
	}

	return 0;
}

你可能感兴趣的:(java,服务器,前端)