标签:建立 输出 ima pen family open rdo font 非阻塞
在服务器上用Vim编写程序:创建一个命名管道,创建两个进程分别对管道进行读fifo_read.c和写fifo_write.c。给出源代码。
fifo_read.c
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stst.h>
#include<fcntl.h>
int main(){
int fd,ret;
ret=mkfifo("myfifo",0777);
if(ret!=o){
perror("mkfifo");
}
fd=open("myfifo",O_RDONLY);
if(fd<0){
perror("openfifo error");
}
while(1){
char infm[100]={0};
read(fd,infm,sizeof(infm));
printf("read:%s/n",infm);
}
close(fd);
return 0;
}
fifo_write.c
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main( ){
int fd,ret;
ret=mkfifo("myfifo",0777);
if(ret!=0){
perror("mkfifo");
}
fd=open("myfifo",O_WRONLY);
if(fd<0){
perror("openfifo error");
}
while(1){
char send[200];
scanf("%s",send);
}
close(fd);
return 0;
}
输入端
判断管道是否建立成功,再输入内容。
输出端
判断管道是否建立成功,再输出输入端的内容。
管道模式:
O_RDONLY(读管道)
O_WRONLY(写管道)
O_RDWR(读写管道)
O_NONBLOCK(非阻塞)
一开始启动在启动fifo_write.c前要先启动fifo_read.c后才能成功运行,否则读管道则会阻塞直到写管道输入内容。
标签:建立 输出 ima pen family open rdo font 非阻塞
原文地址:https://www.cnblogs.com/my7in7i/p/12716890.html