我的exe没有传递任何东西到logfile(jampded.exe)

时间:2013-06-12 11:28:18

标签: c++ batch-file game-engine

我想为我的游戏服务器创建一个简单的处理程序。它将直接读取控制台并采取我想要的任何操作。但!我无法将服务器的输出传递给我的exe或txt。

ping google.com > ping.log

它工作正常,一切都将记录在我的日志文件中。我还创建了一个exe,它可以通过这种方式读取输出数据:

ping google.com | my.exe

它也很好,我的exe的内容是:

#include <iostream>
#include <windows.h>

using namespace std;

int main() {
    string input = "";
    while(cin) {
        getline(cin, input);
        cout << input << endl;
    };
    system("pause");
}

它逐行显示所有内容。

问题在于jampded.exe。如果我用批处理文件启动它,它在控制台窗口中有输出,但是我无法将其传递给我的日志文件或my.exe。我不知道。

我把cout-s放在我的代码中,所以它显示它在while循环中。 getline等待cin,但没有通过..但为什么?

2 个答案:

答案 0 :(得分:0)

您的程序可能会使用stderr来输出数据。

尝试将jampded.exe | yourprogram.exe替换为jampded.exe 2| yourprogram.exe

答案 1 :(得分:0)

我对jampded不熟悉,但通常情况下,服务器会向控制台输出一些启动消息,然后从控制台输入/输出中分离出来,这样它就可以在后台运行。可以将任何其他消息写入日志文件。

您可以启动jampded命令行或配置文件选项以继续写入控制台。或者您可以阅读日志文件。 (我通常使用gnuwin32文件utils中的“tail.exe -f”。)

谷歌上的快速搜索还显示有一个名为jamp.exe的非专用服务器版本。出于测试目的,它可以提供更大的灵活性来捕获输出。