草庐IT

stdout_writer

全部标签

windows - Node console.log 行为和 Windows stdout

尝试在Windows中从node.js脚本重定向输出时,我注意到了奇怪的行为。此行为的最小可重现示例如下:从Windows控制台(cmd.exe):c:\>node-econsole.log('hello')hello来自Powershell:PSC:\>node-econsole.log('hello')PSC:\>也就是说,它没有向控制台写入任何内容就退出了。这是个问题,因为当我尝试将输出重定向到文件时,没有任何内容被写入,例如node-econsole.log(123)>temp.txt正在创建一个名为temp.txt的空文件。有没有关于Node如何将console.out写入s

windows - 我用什么来读取子进程的 STDIN/写入 STDOUT?

我有一个从STDIN读取并输出到STDOUT的可执行文件。我需要一个Perl脚本,它将这个可执行文件作为子进程派生并写入该子进程的STDIN,并从STDOUT读取。这是Windows所必需的。有什么想法或建议吗? 最佳答案 perlfaq8HowcanIopenapipebothtoandfromacommand? 关于windows-我用什么来读取子进程的STDIN/写入STDOUT?,我们在StackOverflow上找到一个类似的问题: https://

c# - 为什么重定向标准输入会导致 stdout 不打印到新的控制台进程?

所以我试图运行一个单独的程序,使用Process.Start().程序会偶尔暂停,等待输入。我希望能够通过标准输入向此进程发送信息。我试图理解使用Windows操作系统外壳创建新进程与重定向标准输入的影响之间的区别。ExeUseShellRedirectSTDINWINDOWDisplaysOutputDisplayscmd.exe/cprogramYNYYNNYYNYYNprogram.exeYNYYNNYYNYYN重要的信息是,如果我重定向标准输入,那么屏幕上不会显示任何数据。为什么会这样?通常program.exe应该写入其stdout文件描述符。我假设Process.Start

c - windows vista 的 slim reader writer locks 有跨平台版本吗?

WindowsSRW实现的质量让我大吃一惊。它比临界区更快,而且只有几个字节的内存开销。很遗憾,它只有WindowsVista/Windows7。由于这是一个纯粹的用户空间实现,有人知道是否有跨平台实现吗?有没有人对那里的解决方案进行逆向工程?我不想添加像boost这样的东西只是为了引入少于100LOC的解决方案。 最佳答案 如果您想要某种符合某些标准的“便携”东西...如果您使用的是POSIX线程,则有pthread_rwlock_init()和friend。这些当然不是通常用于Windows,而是用于Unix类型的操作系统。但是

windows - 通过 PowerShell 加载类型库并编写 Windows Live Writer 脚本

一般来说,我对COM和Windows编程/脚本编写还很陌生。我想做的是编写WindowsLiveWriter脚本;根据文档,我可以打电话$o=New-Object-cWindowsLiveWriter.Application我需要先加载TLB,所以我应该调用add-type命令,不幸的是它失败了:PSC:\Users\NoWhereMan>add-typewindowslivewriter.applicationAdd-Type:c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1):Anamespacedoesnotdirect

windows - 使用 Microsoft XPS Document Writer 以编程方式创建 XPS 文件

我正在研究批量打印解决方案。要打印的文件将采用各种(典型)格式,例如PDF、Word、Excel等。根据我收集(和测试)的结果,打印XPS文件是在Windows平台上进行的方式。但是,我完全不清楚如何实际创建XPS文件-不熟悉所讨论的输入文件格式(以编程方式)。我希望我可以打印到本地MicrosoftXPSDocumentWriter“打印机”,然后实际打印它的输出(即XPS文件)。我无法以编程方式成功执行此操作。我尝试过托管代码System.Printing,非托管代码WinspoolAPI。我可以成功打开打印机并向其写入原始数据,但我从未得到XPS文件输出。如何创建XPS文件?我查

c++ - 如何在 Windows 中访问继承的匿名管道 HANDLE,而不是 stdout、stderr 和 stdin?

我正在尝试通过Windows中的匿名管道从子进程接收数据。我知道如何使用标准I/O流来执行此操作,但这些被用于其他目的。我也知道如何在Linux或OSX中使用fork()、pipe()和execv()执行此操作。在Windows中,您可以使用CreatePipe()创建管道,并使用SetHandleInformation()使一端不可继承。然后,对于stdout和stderr,您可以将STARTUPINFO和hStdOutput或hStdError设置为CreateProcess()以传递另一端给child。在调用CreateProcess()之后,父级最接近它的是子级管道末端的句柄。

python - 子进程,从 STDOUT 读取时重复写入 STDIN (Windows)

我想从python调用外部进程。我正在调用的进程读取输入字符串并给出标记化结果,然后等待另一个输入(如果有帮助,二进制是MeCab标记器)。我需要通过调用此过程来标记数千行字符串。问题是Popen.communicate()工作但在给出STDOUT结果之前等待进程结束。我不想继续关闭和打开新的子流程数千次。(而且我不想发送整个文本,将来很容易超过数万行。)fromsubprocessimportPIPE,PopenwithPopen("mecab-Owakati".split(),stdin=PIPE,stdout=PIPE,stderr=PIPE,close_fds=False,un

ruby - 如何在 Windows 上的 Ruby 中只向 STDOUT 写入一个 0x0A 字符?

如何在Windows上的Ruby中将一个0x0A字符写入STDOUT。只有一个,没有0x0D。@EDIT:感谢大家!我知道二进制/文本模式的概念,但不知道如何在Ruby解释器中处理它。解决方案是使用STDOUT.binmode。有一个悬而未决的问题,即如何使用平台独立代码将STDOUT切换回文本模式。 最佳答案 这是由于“虚拟换行符”。在(Ruby)IO层,此功能负责将“\n”(0x0A,LF)映射到/从OperatingSystemsdefinitionofanewline。.Windows将“\n”映射到CR+LF(而“\n”在

c# - 在新的应用程序域中运行时,如何将 stdout 转换为 mstest 输出?

我一直在研究测试框架,它创建了一个新的应用程序域来运行测试。主要原因是我们正在测试的dll有一些可怕的代码,这些代码依赖于位于应用程序域路径中的dll。(不,我不能更改此代码。)我遇到的问题是,我的测试团队正在mstest中编写一堆功能测试,而其中一个写入Console.Out的记录器没有在trx输出中捕获的任何日志信息。通过控制台应用程序运行代码时,所有日志信息都可以正常输出。已实现的其他记录器也是如此。我的想法是mstest正在将自己的TextWriter设置为Console.Out,但是新的应用程序域有它自己的Console.Out的TextWriter,因为新的应用程序域有它自