linux windows 命名管道,在Windows/Mac/Linux上的命名管道?

我目前在php中使用proc_open()與命令行工具進行通信。它會自動爲STDIN,STDOUT和STDERR創建最多3個文件描述符,因爲超過3個管道會破壞Windows兼容性。它在Windows XP和Mac 10.7上運行良好。在Windows/Mac/Linux上的命名管道?

但是,我希望能夠創建自己的命名管道,以便更好地控制。如果我無法這樣做,那麼我必須在流程資源和流資源之間保持引用,這會使我的代碼過於複雜。我無法使用文件,因爲它們填滿了長時間任務的磁盤空間。我也試圖避免使用套接字,因爲它們在默認情況下並未啓用。

下面是到目前爲止,我已經找到了鏈接:

我試過每一種在PHP 5.3.13,但他們沒有工作:

var_dump(fopen("\\\\.\\pipe\\mypipe", "w+"));

var_dump(fopen("\\\\127.0.0.1\\pipe\\mypipe", "w+"));

var_dump(fopen("\\\\".php_uname('n')."\\pipe\\mypipe", "w+"));

我總是看起來像這樣的錯誤:

PHP Warning: fopen(\\.\pipe\mypipe): failed to open stream: No such file or directory in C:\Documents and Settings\Administrator\Desktop\named-pipe.php on line 15

PHP Stack trace:

PHP 1. {main}() C:\Documents and Settings\Administrator\Desktop\named-pipe.php:0

PHP 2. fopen() C:\Documents and Settings\Administrator\Desktop\named-pipe.php:15

Warning: fopen(\\.\pipe\mypipe): failed to open stream: No such file or directory in C:\Documents and Settings\Administrator\Desktop\named-pipe.php on line 15

Call Stack:

0.0018 431936 1. {main}() C:\Documents and Settings\Administrator\Desktop\named-pipe.php:0

0.0018 432072 2. fopen() C:\Documents and Settings\Administrator\Desktop\named-pipe.php:15

bool(false)

所以我的問題是,有任何人在Windows XP上成功打開了一個命名管道?如果不是,哪些版本的Windows支持命名管道?我不知道管道「文件」描述符是否需要已經存在,例如,如果它必須由mysql或其他服務創建。

,如果你能提供跨平臺的代碼,可能使用posix_mkfifo()或系統(「mkfifo管」)就像這個答案加分點:

理想的解決方案應該與香草工作安裝的PHP,所以沒有套接字等,但任何幫助謝謝。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值