问题列表 - 第6191页

Haskell:如何将一个句柄的内容实时传输到另一个句柄中

我正在编写一个以交互方式运行外部子进程的程序,我需要输出句柄的内容一旦可用就输出到stdout.我尝试过这样的事情:

main = do processInfo <- createProcess (proc "ghci" []){std_out = CreatePipe,
                                                    std_in  = CreatePipe }
       case processInfo of
          (Just hIn, Just hOut, _, _) -> do mainloop hIn hOut
                                          hClose hIn
                                          hClose hOut
       _                              -> do error "Unable to start process"

mainloop :: Handle -> Handle -> IO ()
mainloop inh outh = 
    do ineof <- hIsEOF outh
       if ineof
          then return ()
          else do inpStr <- hGetLine outh
                  putStrLn inpStr
                  mainloop inh outh
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它只能逐行识别输出,因此不会显示未由换行符终止的进程输出句柄上的任何输出.我用hGetContents尝试了同样的事情,但它产生了相同的结果.我已经阅读了System.Process和System.IO的文档,并没有真正找到任何结论.

io monads haskell

5
推荐指数
1
解决办法
1053
查看次数

VB.NET是否具有匿名功能?

从我在谷歌上可以找到的,VB.NET只有一个语句lambdas,而不是多语句匿名函数.但是,我读到的所有文章都在谈论旧版本的VB.NET,我找不到比vs2008 beta 1或2更新的内容.

所以问题是:如何在VB.NET中执行此操作?

C#代码:

private void HandleErrors( Action codeBlock ){
    try{
        codeBlock();
    }catch(Exception e){
        //log exception, etc
    }
}

HandleErrors(() => {
    var x = foo();
    x.DoStuff();
    etc
});
Run Code Online (Sandbox Code Playgroud)

vb.net anonymous-methods

15
推荐指数
3
解决办法
2万
查看次数

有没有人用Delphi编程VST?

有没有人使用Delphi编程Virtual Studio Technology插件?

delphi vst

8
推荐指数
2
解决办法
2284
查看次数

使用getchar()和-O3的奇怪行为

我有这两个功能

    void set_dram_channel_width(int channel_width){
      printf("one\n");
          getchar();
    }


    void set_dram_transaction_granularity(int cacheline_size){
      printf("two\n");
          getchar();
    }
    //output:
    one
    f //my keyboard input
    two
    one
    f  //keyboard input
    two
    one
    f  //keyboard input
    //No more calls
Run Code Online (Sandbox Code Playgroud)

然后我将功能更改为:

    void set_dram_channel_width(int channel_width){
      printf("one\n");
    }


    void set_dram_transaction_granularity(int cacheline_size){
      printf("two\n");
      getchar();
    }
    //output
    one
    two 
    f //keyboard input
    //No more calls 
Run Code Online (Sandbox Code Playgroud)

这两个函数都是由外部代码调用的,两个程序的代码是相同的,只需更改getchar()即可获得这两个不同的输出.这是可能的还是我的代码中有些东西是真的错了?

谢谢

这是我用GDB获得的输出**

对于第一个代码

(gdb) break mem-dram.c:374
Breakpoint 1 at 0x71c810: file build/ALPHA_FS/mem/dramsim/mem-dram.c, line 374.
(gdb) break mem-dram.c:381
Breakpoint 2 at 0x71c7b0: file build/ALPHA_FS/mem/dramsim/mem-dram.c, line 381.
(gdb) …
Run Code Online (Sandbox Code Playgroud)

c c++ getchar

0
推荐指数
1
解决办法
558
查看次数

如何比较批处理文件中的两个文件?

如何比较批处理文件中的两个文件,并根据它们是否匹配执行操作?我尝试过类似的东西:

if file1.txt NEQ file2.txt goto label
Run Code Online (Sandbox Code Playgroud)

但它比较实际的字符串"file1.txt"而不是文件.我已经阅读了关于COMP命令的内容,但是如果我把它放在if语句中它似乎不起作用.有人知道怎么做这个吗?抱歉,我很少使用批处理文件,对它们的经验很少.

提前致谢.

comparison if-statement file batch-file

17
推荐指数
1
解决办法
6万
查看次数

为了添加实例初始化块而创建的匿名类的意外后果

这是一个关于Java代码的问题,例如:

List<String> list = new ArrayList<String>() {{add("hello"); add("goodbye");}}
Run Code Online (Sandbox Code Playgroud)

程序员匿名扩展ArrayList只是为了在实例初始化块中推迟.

问题是:如果程序员的唯一目的只是达到以下目的:

List<String> list = new ArrayList<String>();
list.add("hello");
list.add("goodbye");    
Run Code Online (Sandbox Code Playgroud)

那么第一种方式做到这一点的意外后果是什么?

java anonymous-class

4
推荐指数
2
解决办法
1411
查看次数

灵活的科学证明?

是否有任何科学研究将敏捷与其他软件开发方法进行了比较?我认为敏捷是一种很好的工作方式,但它有什么科学依据吗?

我正在寻找像这样,除了本研究只涉及TDD.有没有关于敏捷的研究?

我问这个是因为我遇到了一个敏捷狂热者,他声称敏捷的工作方式比其他所有工作方式都能产生更好的软件.他将此视为一个事实,我认为不是这样.

agile methodology

13
推荐指数
4
解决办法
2005
查看次数

如何在Qt窗口关闭时释放内存?

我目前正在Qt,OpenCv,Mac OS X中创建一个程序.我有一个主窗口,然后是一个打开的单独窗口.我在构造函数中传递了几个矩阵克隆的新窗口:

ImageWindow *imageWin = new ImageWindow( 
   cvCloneMat(getData->getMasterRawMat(1)), 
   cvCloneMat(getData->getMasterRawMat(2)), 
   cvCloneMat(getData->getMasterRawMat(3)), 
   cvCloneMat(getData->getMasterRawMat(4)) );
imageWin->show();
Run Code Online (Sandbox Code Playgroud)

当新窗口关闭时,如何解除分配(我在哪里调用cvReleaseMat)?

c++ qt opencv memory-management

1
推荐指数
1
解决办法
2593
查看次数

Apache HTTPD重新加载

有没有人知道,当Apache HTTPD正在进行重新加载时(假设需要5秒钟),它是否仍能在此期间提供请求?

apache reload

22
推荐指数
2
解决办法
3万
查看次数

我想将Frotz z-machine解释器移植到亚马逊Kindle上.这甚至可能吗?

我希望能够在亚马逊Kindle 2上播放互动小说的作品.为了做到这一点,我需要将Frotz解释器移植到Kindle.到目前为止,我还没有找到任何讨论Kindle应用程序开发的地方.这样的事情存在吗?我在哪里可以找到更多信息?

kindle z-machine

11
推荐指数
3
解决办法
1952
查看次数