我的exe没有向logfile (jampded.exe)传递任何内容

My exe does not pass anything to logfile (jampded.exe)

本文关键字:exe 任何内 jampded logfile 我的      更新时间:2023-10-16

我想为我的游戏服务器创建一个简单的处理程序。它将直接读取控制台并采取我想要的任何操作。但是!我无法将服务器的输出传递到我的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,但是没有传递任何消息。但是为什么呢?

你的程序可以使用stderr来输出数据。

尝试用jampded.exe 2| yourprogram.exe代替jampded.exe | yourprogram.exe

我不熟悉jampded,但通常情况下,服务器将向控制台输出一些启动消息,然后将自己与控制台输入/输出分离,因此它可以在后台运行。任何进一步的消息都可以写入日志文件。

您可以使用命令行或配置文件选项启动,以保持向控制台写入。或者您可以读取日志文件。(为此,我通常使用gnuwin32文件utils中的"tail.exe -f")

在google上快速搜索一下也会发现有一个非专用服务器版本叫做jam .exe。对于测试目的,它可以提供更大的灵活性来捕获输出。

相关文章: