gpt4 book ai didi

c++ - 带汇编调试(同步)的 WriteFile 函数

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:14 25 4
gpt4 key购买 nike

首先,这个问题是基于我在这里的最后一个问题:Reading Console Buffer / Output C++

我有一个已编译的可执行二进制文件。它有一些输出,我想将它重定向到另一个处理这些行的程序。我成功地找到了输出的发送位置,并将其修改为STDOUT。问题是,当我像这样使用它时:

./jampDed.exe | stdout.exe

然后输出不同步。每隔 1000-2000 字节获取内容。

标准输出.cpp

#include <iostream>

int main() {
std::string s;
while (std::getline(std::cin, s, '\n')) {
std::cout << s << std::endl;
}

return 0;
}

我还创建了一个关于程序集修改的图片,其中默认使用了 Kernel32.WriteFile 函数。

ASM WriteFile

所以问题是,我怎样才能让它同步?如何在专用服务器上立即获取每一行?

最佳答案

在可执行文件中建立 stdout 的地方是无缓冲输出的选项位。只需设置(或清除)该位即可。然后每个调用 write 都会立即转移。这会显着增加该程序的执行时间和 I/O 系统工作量,但这可能没问题。

处理输出(作为输入)的程序应该缓冲整行,因为程序本身不太可能进行整行输出。

关于c++ - 带汇编调试(同步)的 WriteFile 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23811572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com