我需要從Erlang運行UNIX進程,並將TCP套接字設置爲標準輸入。那可能嗎?Erlang:將tcp套接字作爲標準輸入傳遞給UNIX進程
現在我有一個TCP套接字,我從Ranch得到了,我可以得到它的文件描述符,但我不確定如何將它設置爲我創建的UNIX進程的標準輸入。透過open_port
documentation沒有提供任何線索如何做到這一點。
我需要這樣做的原因是我調用的過程是硬編碼的,希望它的標準是一個套接字,如果不是,它會崩潰。這意味着我不能用open_port
打開它,並將TCP流代理到它。
我在Ubuntu 12.04上運行。
您是否考慮過創建FIFO?用os:cmd調用mkfifo,打開新文件用file:open打開,用os:cmd來調用外部進程?沒有遠程優雅,但應該做的伎倆。 – macintux
最終進程是否將FIFO看作TCP端口?現在它聲明stdin是一個IPV4或IPV6套接字。不是我會做的,但我沒有在該應用程序的專業知識...... – kjw0188