- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 fsharpi (fsi) 作为后台编译进程,使用 System.Diagnostics.Process 生成进程。我的 ProcessStartInfo 设置如下所示:
let psi = new ProcessStartInfo()
psi.UseShellExecute <- false
if System.Environment.OSVersion.Platform = PlatformID.Unix
then
psi.FileName <- "/usr/bin/mono"
psi.Arguments <- "/usr/lib/fsharp/fsi.exe"
else
psi.FileName <- @"C:\Program Files (x86)\Microsoft F#\v4.0\fsi.exe"
psi.Arguments <- ""
psi.WorkingDirectory <- "some workdir"
psi.CreateNoWindow <- true
psi.RedirectStandardError <- true
psi.RedirectStandardInput <- true
psi.RedirectStandardOutput <- true
我的流程是这样创建的:
let proc = Process.Start(psi)
之后我使用 stdin 发出我的代码:
proc.StandardInput.WriteLine(myCode+";;"+Environment.NewLine)
proc.StandardInput.Flush()
这适用于带有标准设置的 VisualStudio 的 Windows 7 - 不幸的是它不适用于 linux(ubuntu 11.04,Mono JIT 编译器版本 2.6.7(Debian 2.6.7-5ubuntu3),F#,Microsoft(R)F#2.0 Interactive build 2.0.0.0) [注意:从源代码构建的 mono 2.10 相同]。无论如何,StandardOutput 在两个平台上都可以正常工作。
编辑:阐明如何/什么不起作用:在收到标准启动输出(F#、Microsoft (R) F#...)后,我通过重定向输入流发送一些代码(比如说让 foo x = x * 2) .使用重定向输出(使用 proc.StandardOut.ReadLine() 但 ReadLine 永远不会返回!
我怀疑这是运行 fsharpi 的(额外进程)单声道问题或平台问题(换行符等)。
为了排除第二种可能性,我尝试了手动管道。为此,我创建了一个包含以下内容的文件:
"#quit;;[NEWLINE]"
[NEWLINE 代表 Unix endlines 和 windows 风格 EOL]
使用以下命令(Windows):
fsi.exe < thefileDescribedAbove
或分别(linux)
fsharpi < thefileDescribedAbove
正如预期的那样,它可以在 Windows 上运行(打开 FSI 并立即退出),但在 Linux 上会停止运行(如 ;; 或未收到 NEWLINE)。鉴于此测试中的奇怪结果,我怀疑我的方法存在更根本的问题(希望不是)。
非常感谢
最佳答案
经过长时间毫无意义的 bughunt:fsi 的“--readline-”参数解决了这个问题!感谢所有的追踪:-)
(实际上我很久以前就试过这个 - 显然我当时把我的测试搞砸了)
关于.net - 如何将标准输入管道与 fsharpi (fsi) 和单声道一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7217106/
我想在我的 android 应用程序中播放 PCM 音频数据。网络上有很多示例,但仅用于单 channel ,我有 4 个 channel (如本问题标题所述)。 当我设置 AudioTrack au
我正在尝试通过 channelsplitter 将立体声音频路由到具有增益控制的 6 个 channel ,然后返回到 channelMerger,以控制 5.1 组的所有 6 个 channel .
我试图从 iPhone XS 的所谓立体声后置麦克风中获取两个 channel ,但在 AVAudioSession 的不同点上只能看到一个 channel 。和 AVAudioSessionPort
我是一名优秀的程序员,十分优秀!