php和go进行跨进程fifo通信

fifo的文件需要提前建立好,或者用程序处理

php

<?php
$fifoName = "my_fifo";

// 打开命名管道进行读取
$fifo = fopen($fifoName, "r+");
if ($fifo === false) {
     die("Unable to open FIFO: $fifoName");
}
 // 读取数据
$data = fread($fifo, 1024);
echo "Read from FIFO: " . $data;
 // 关闭管道
fclose($fifo);

go

package main

import (
_       "fmt"
        "os"
        "syscall" 
)

func main() {
        // 创建一个命名管道
        fifoName := "my_fifo"
//      _ = os.Remove(fifoName) // 确保先前的命名管道被删除
        _ = syscall.Mkfifo(fifoName, 0666)
       defer os.Remove(fifoName) // 确保程序结束后删除命名管道

        // 打开管道进行读写
        fifo, err := os.OpenFile(fifoName, os.O_RDWR, 0666)
        if err != nil {
                panic(err)
        }
        defer fifo.Close()

        // 写入数据
        _, err = fifo.WriteString("Hello from the other side\n")
        if err != nil {
                panic(err)
        }

        // 读取数据
//      buf := make([]byte, 50)
//      n, err := fifo.Read(buf)
//      if err != nil {
//              panic(err)
//      }

//      fmt.Println("Received:", string(buf[:n]))
}
posted @   朝阳1  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示