我的问题是Haskell如何与系统交互。 例如,IO如何发生?Haskell与OS交互(中断)
我对IO monad不感兴趣。或者如何让Haskell打印一个字符串或读取一个文件。 我对Haskell和底层操作系统之间的层感兴趣(如果是这样的话)。 Haskell本身(不是我)如何将任何内容打印到控制台?它如何与操作系统交互?
例如,在Python中,我可以执行任何系统命令。我可以让它做echo message
。
这真的变得非常重要的是了解套接字如何工作,以及如何确保我的程序在我获得新连接时被中断。
在python中,一种方法是使用epoll
这是操作系统的一部分(我相信只是接管了对python进程的控制)。
编辑:@Daniel Wagner建议让我把这个问题更具体一些。 目前我并不是在解决问题,我只是理论上很好奇。 因此,让我问你: Haskell如何处理Linux上套接字产生的中断?
编辑:并使它更容易理解我在寻找的答案: - 当Haskell获得中断时,Haskell是否停止播放? - 在我可以完成旧的处理之前,是否有任何保证可以回答新的连接? - 它如何获得中断?
在某些时候,Haskell标准I/O库与本地代码有一些绑定,可能是标准的C I/O例程。 –
你的问题有点含糊。 (操作系统很大!)是,“我如何使用套接字?”?或者,也许是,“我如何产生运行特定命令的另一个进程?”?如果两者都不是,你现在面临的实际问题是什么?你需要做什么,你不知道该怎么做? –