linux C++ 有名管道_dasgk的专栏-CSDN博客
golang 有名管道通信 总结分析
golang 有名管道通信 总结分析_wjw7869的专栏-CSDN博客
#include#include #include #include #include #include #include #include #include using namespace std; //#define FIFO_READ "/tmp/writefifo" #define FIFO_WRITE "/tmp/readfifo" #define BUF_SIZE 1024 int main() { int wfd; char ubuf[BUF_SIZE]={0}; umask(0); if(mkfifo(FIFO_WRITE,S_IFIFO|0666)) { cout<<"sorry the namedpipe created error"< >ubuf; if(strcmp(ubuf,"exit")==0) { exit(0); } int leng= write(wfd,ubuf,strlen(ubuf)); if(leng>0) { cout<<"write..."< #include#include #include #include #include #include #include #include #include using namespace std; #define FIFO_READ "/tmp/readfifo" #define BUF_SIZE 1024 int main() { int rfd; char ubuf[BUF_SIZE]={0}; umask(0); while((rfd=open(FIFO_READ,O_RDONLY))==-1) { cout<<"open..."< 0) { ubuf[len]=' '; cout<<"server:"< package main import ( "fmt" "log" "os" "time" "bufio" "syscall" ) var pipeFile = "/tmp/pipe.ipc" func main() { os.Remove(pipeFile) err := syscall.Mkfifo(pipeFile, 0666) if err != nil { log.Fatal("create named pipe error:", err) } go write() go read() for { time.Sleep(time.Second * 1000) } } func read(){ fmt.Println("open a named pipe file for read.") file, _ := os.OpenFile(pipeFile, os.O_RDWR, os.ModeNamedPipe) reader := bufio.NewReader(file) for { line, err := reader.ReadBytes('n') fmt.Println("read...") if err == nil { fmt.Print("load string: " + string(line)) } } } func write() { fmt.Println("start schedule writing.") f, err := os.OpenFile(pipeFile, os.O_RDWR, 0777) if err != nil { log.Fatalf("error opening file: %v", err) } i := 0 for { fmt.Println("write string to named pipe file.") f.WriteString(fmt.Sprintf("test write times:%dn", i)) i++ time.Sleep(time.Second) if i == 10{ break } } }



