标签: stdout

来自 C++ 的 JNI Java;打印输出?

我使用 JNI 在 C++ 程序中调用一些 Java 代码。我需要将一些文本从 Java 打印到 C++ 标准输出。

我该怎么做?

我尝试:System.out.println("sdf");在java中,什么也没有出现。

请帮助:D

c++ java java-native-interface stdout

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

如何使用`with` 语句来抑制`sys.stdout` 或`sys.stderr`?

我正在尝试使用with声明来抑制sys.stdoutsys.stderr单独使用。 我发现了一个不起作用的教程。我正在使用Python 3.6.4并且我认为该教程是Python 2.

我在 SO 上查了一下,发现了一些但应用程序不起作用或不适用于这种情况。

这不适用:Python subprocess supress stdout and stderr

无法使任何with语句起作用: Suppress stdout / stderr print from Python functions

这适用于 fortran:在 Python 中重定向 FORTRAN(通过 F2PY 调用)输出

from contextlib import contextmanager
@contextmanager
def suppress_console(file=sys.stdout):
    with open(os.devnull, "w") as devnull:
        old_file = file
        file = devnull
        try:  
            yield
        finally:
            file = old_file

with suppress_console():
    print(1, file=sys.stdout)
# 1
Run Code Online (Sandbox Code Playgroud)

python stdout suppress stderr dev-null

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

在bash中stdout和stderr之间的顺序不匹配

我正在交互式shell中执行bash命令 ./somescript.sh

它给出了输出

OS platform is: linux2
killall agent
agent: no process killed
Run Code Online (Sandbox Code Playgroud)

其中第三行来自stderr.

但是当我在子shell中执行时

var=$('./somescript.sh' 2>&1)
agent: no process killed
OS platform is: linux2
killall agent
Run Code Online (Sandbox Code Playgroud)

为什么代理人:现在第一行没有打印过程?如何使它们保持一致以对齐它们?

编辑:但是当我这样做时, var=$('./somescript.sh' 1>&2) 我可以看到它在bash调试模式下以正确的顺序给出输出.但它没有存储在变量var中.

bash shell stdout stderr io-redirection

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

stderr 未正确定向

以下命令:

ls > . 2> error
Run Code Online (Sandbox Code Playgroud)

印刷:

bash: .: Is a directory
Run Code Online (Sandbox Code Playgroud)

到终端。但是由于我将 stderr 重定向到“错误”,我希望这一行被写入错误而不是终端。

bash shell stdout stderr io-redirection

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

os.Stdout 和 syscall.Stdout 有什么区别?

我一直在尝试使用 ForkExec() 但我无法完成这项工作,syscall.Stdout 和 os.Stdout 之间有区别吗?

这是我尝试运行的代码的一个小例子。

command := "/usr/bin/echo"
args := []string{"Hello there."}
attr := new(syscall.ProcAttr)
attr.Env = os.Environ()
attr.Files = []uintptr{uintptr(syscall.Stdin), uintptr(syscall.Stdout), uintptr(syscall.Stderr)}
pid , err := syscall.ForkExec(command, args, attr)
if err != nil {
    log.Fatal(err)
}
fmt.Println(pid)
Run Code Online (Sandbox Code Playgroud)

输出未显示在屏幕上。

非常感谢您的帮助。

stdout system-calls go

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

逐行读取标准输入

我需要将命令通过管道传输到批处理文件中并进行一些处理,同时保留原始命令的输出。因此,例如在运行以下命令时,输出仍然好像根本没有管道一样:

ping 127.0.0.1 -n 4 | my_process
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现的最佳解决方法是/sf/answers/488642381/。但我的问题是我需要逐行输出。使用该解决方案,只有在执行完 ping 命令后才会刷新输出。我发现/sf/answers/1509727481/说这是因为in(在for in循环内)。

这是一行一行的例子:

ping 127.0.0.1 -n 4 | findstr $
Run Code Online (Sandbox Code Playgroud)

实际上,如果 Windows 是一个开源项目,我们可能会在findstr或类似命令中找到答案。

windows stdin cmd stdout batch-file

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

如何判断stdout是否支持ANSI转义码

在不支持ANSI转义码的终端中,输出\033[0m这样的颜色控制码不仅没有任何效果,还会干扰终端。

我知道一个json格式化工具叫jq,它判断终端是否可以使用ANSI转义码。

我想知道,如何通过C语言实现这个功能?

c stdout ansi-escape jq

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

“\n”传递给函数 write() 时是否需要 1 个字节?

我只想知道如果使用 1 个字节,换行符(即“\n”)是否只能写入标准输出,我的意思是,是否必须像这样调用换行符?

write(1, "\n", 1);
Run Code Online (Sandbox Code Playgroud)

或者可以这样称呼吗?

write(1, "\n", 0);
Run Code Online (Sandbox Code Playgroud)

c stdout

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

使用python中的print方法打印最后一个'\n'字符

想象一下,我在文件中有以下代码test.py:

for x in range(1,11):
     print x
Run Code Online (Sandbox Code Playgroud)

这将打印:

$myuser: python test.py
1
2
3
4
5
6
7
8
9
10
$myuser:
Run Code Online (Sandbox Code Playgroud)

但是,我希望它打印:

$myuser: python test.py
1
2
3
4
5
6
7
8
9
10

$myuser:
Run Code Online (Sandbox Code Playgroud)

注意最后一个'\n'字符,在正常情况下缺少.我如何获得最后一个换行符?

python printing newline stdout

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

将\n包含在python中的字符串中

我如何在python中的字符串中转义\n.

我怎么写python这个字符串中的stdin "abc\ndef"作为单个输入

Sys.stdout.write("abc\ndef")
Run Code Online (Sandbox Code Playgroud)

电流输出

import sys

>>> sys.stdout.write("abc\ndef")
abc
def
Run Code Online (Sandbox Code Playgroud)

我希望它是 abc\ndef

python stdin stdout sys

-1
推荐指数
2
解决办法
2630
查看次数