Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何抑制错误消息:“quot;`./hubbard.exc';中的错误:损坏的大小与以前的大小;? 我有一个非常古老的程序(从80年代末开始),用C++编写,我设法使它运行在 Ubuntu 16.04 64位< /COD>。即使它在最后产生了一个错误,结果也没有问题。由于现在似乎不可能编译这个程序(它使用了一个非常旧版本的专有库NAG),我无法在源代码中解决这个问题,只能忍受这个错误。我需要在一个循环中运行这个程序,错误消息完全弄乱了我的屏幕,阻止我看到相关的消息。我试图通过调用/hubbard.exc 2>/dev/null和它的变体&>/dev/null来抑制该消息,但错误消息仍然打印到屏幕上。因此,我得出结论,该错误消息既没有打印到stdout,也没有打印到stderr_Python_Bash_Ubuntu_Error Suppression - Fatal编程技术网

Python 如何抑制错误消息:“quot;`./hubbard.exc';中的错误:损坏的大小与以前的大小;? 我有一个非常古老的程序(从80年代末开始),用C++编写,我设法使它运行在 Ubuntu 16.04 64位< /COD>。即使它在最后产生了一个错误,结果也没有问题。由于现在似乎不可能编译这个程序(它使用了一个非常旧版本的专有库NAG),我无法在源代码中解决这个问题,只能忍受这个错误。我需要在一个循环中运行这个程序,错误消息完全弄乱了我的屏幕,阻止我看到相关的消息。我试图通过调用/hubbard.exc 2>/dev/null和它的变体&>/dev/null来抑制该消息,但错误消息仍然打印到屏幕上。因此,我得出结论,该错误消息既没有打印到stdout,也没有打印到stderr

Python 如何抑制错误消息:“quot;`./hubbard.exc';中的错误:损坏的大小与以前的大小;? 我有一个非常古老的程序(从80年代末开始),用C++编写,我设法使它运行在 Ubuntu 16.04 64位< /COD>。即使它在最后产生了一个错误,结果也没有问题。由于现在似乎不可能编译这个程序(它使用了一个非常旧版本的专有库NAG),我无法在源代码中解决这个问题,只能忍受这个错误。我需要在一个循环中运行这个程序,错误消息完全弄乱了我的屏幕,阻止我看到相关的消息。我试图通过调用/hubbard.exc 2>/dev/null和它的变体&>/dev/null来抑制该消息,但错误消息仍然打印到屏幕上。因此,我得出结论,该错误消息既没有打印到stdout,也没有打印到stderr,python,bash,ubuntu,error-suppression,Python,Bash,Ubuntu,Error Suppression,如果您能提供任何帮助来抑制此错误消息,或者就如何支持shell的所有输出提供建议,我将不胜感激 如果无法在shell中抑制此错误消息,它还可以帮助我找到从Python3脚本运行程序的方法(使用子进程或os.system),而无需将错误打印到屏幕上 我所说的错误消息如下所示: *** Error in `./hubbard.exc': corrupted size vs. prev_size: 0x0a350a98 *** ======= Backtrace: ========= /lib/i38

如果您能提供任何帮助来抑制此错误消息,或者就如何支持shell的所有输出提供建议,我将不胜感激

如果无法在shell中抑制此错误消息,它还可以帮助我找到从Python3脚本运行程序的方法(使用
子进程
os.system
),而无需将错误打印到屏幕上

我所说的错误消息如下所示:

*** Error in `./hubbard.exc': corrupted size vs. prev_size: 0x0a350a98 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf7d5e377]
/lib/i386-linux-gnu/libc.so.6(+0x6d2f7)[0xf7d642f7]
/lib/i386-linux-gnu/libc.so.6(+0x6e48a)[0xf7d6548a]
./libstdc++-libc6.2-2.so.3(__builtin_vec_delete+0x24)[0xf7f5ea44]
./hubbard.exc[0x80b4ad4]
./hubbard.exc[0x808e141]
./hubbard.exc[0x805352d]
./hubbard.exc[0x805257f]
./hubbard.exc[0x80527c5]
./hubbard.exc(fwrite+0xc7)[0x8049623]
./hubbard.exc[0x80b7779]
/lib/ld-linux.so.2(+0xfa87)[0xf7f89a87]
/lib/i386-linux-gnu/libc.so.6(+0x2e993)[0xf7d25993]
======= Memory map: ========
08048000-080bd000 r-xp 00000000 08:16 15208152                           /mnt/data/Downloads/Ausfuehrbar/hubbard.exc
080bd000-080cb000 rwxp 00074000 08:16 15208152                           /mnt/data/Downloads/Ausfuehrbar/hubbard.exc
080cb000-080cf000 rwxp 00000000 00:00 0 
098ee000-0a51e000 rwxp 00000000 00:00 0                                  [heap]
f7b00000-f7b21000 rwxp 00000000 00:00 0 
f7b21000-f7c00000 ---p 00000000 00:00 0 
f7cf6000-f7cf7000 rwxp 00000000 00:00 0 
f7cf7000-f7ea7000 r-xp 00000000 08:02 917535                             /lib/i386-linux-gnu/libc-2.23.so
f7ea7000-f7ea9000 r-xp 001af000 08:02 917535                             /lib/i386-linux-gnu/libc-2.23.so
f7ea9000-f7eaa000 rwxp 001b1000 08:02 917535                             /lib/i386-linux-gnu/libc-2.23.so
f7eaa000-f7ead000 rwxp 00000000 00:00 0 
f7ead000-f7f00000 r-xp 00000000 08:02 917512                             /lib/i386-linux-gnu/libm-2.23.so
f7f00000-f7f01000 r-xp 00052000 08:02 917512                             /lib/i386-linux-gnu/libm-2.23.so
f7f01000-f7f02000 rwxp 00053000 08:02 917512                             /lib/i386-linux-gnu/libm-2.23.so
f7f0d000-f7f29000 r-xp 00000000 08:02 917507                             /lib/i386-linux-gnu/libgcc_s.so.1
f7f29000-f7f2a000 rwxp 0001b000 08:02 917507                             /lib/i386-linux-gnu/libgcc_s.so.1
f7f2a000-f7f2b000 rwxp 00000000 00:00 0 
f7f2b000-f7f61000 r-xp 00000000 08:16 15208227                           /mnt/data/Downloads/Ausfuehrbar/libstdc++-libc6.2-2.so.3
f7f61000-f7f72000 rwxp 00036000 08:16 15208227                           /mnt/data/Downloads/Ausfuehrbar/libstdc++-libc6.2-2.so.3
f7f72000-f7f75000 rwxp 00000000 00:00 0 
f7f75000-f7f78000 r--p 00000000 00:00 0                                  [vvar]
f7f78000-f7f7a000 r-xp 00000000 00:00 0                                  [vdso]
f7f7a000-f7f9d000 r-xp 00000000 08:02 917518                             /lib/i386-linux-gnu/ld-2.23.so
f7f9d000-f7f9e000 r-xp 00022000 08:02 917518                             /lib/i386-linux-gnu/ld-2.23.so
f7f9e000-f7f9f000 rwxp 00023000 08:02 917518                             /lib/i386-linux-gnu/ld-2.23.so
ff8f5000-ff916000 rwxp 00000000 00:00 0                                  [stack]

我不是专家,但我相信这个旧软件不能很好地适应“新”的Ubuntu。我认为您应该找到一个与导致错误的程序具有相同功能的较新程序,或者只找到该程序的新版本。

您可以使用
导出LIBC_FATAL_STDERR=1
将此回溯转到STDERR,然后使用
2>/dev/null
删除该错误消息,如

$ LIBC_FATAL_STDERR_=1 ./hubbard.exc 2>/dev/null 

,有关详细信息,请参阅。

您好,谢谢您的回答!遗憾的是,没有其他程序具有相同的功能或更新的版本。它是解决一个非常具体问题的科学代码,是在80年代后期完成的。所以这是唯一一个用于此目的的程序。我知道这听起来不太可能,但试着在一个旧软件的虚拟机上使用它。就像旧版本的Windows。嗨,罗恩,谢谢你的回答!但我认为这也是不可能的,因为我在自己的代码中调用了这个程序,它是用Python3编写的,使用了很多包,比如scipy、numpy等等。因此,即使我可以在虚拟机中运行旧程序,我也可能无法将其与我自己需要的代码结合使用。这听起来可能很奇怪,但如果您的计算机显示此弹出错误为弹出“添加”,如果您下载任何基本的添加阻止程序,它可能会抑制这些错误。我的想法快用完了。对不起,老兄,我已经尽力了。嗨,罗恩,再次谢谢你!这个程序在Linux上的终端(bash)中运行,而不是在web浏览器或类似的东西中运行。我从来没有听说过终端的添加拦截器,快速的谷歌搜索也没有给我任何相关的结果。非常感谢您的回答!我只是试了一下,可惜这似乎对我不起作用。在你的链接中,他们似乎也在谈论软呢帽,但我不知道这是否是它似乎不起作用的原因。@TMueller83导出不应该在那里。你能再试一次吗?如果它不起作用,请更具体地说明它是如何失败的(它仍然显示消息吗?它什么也不做吗?什么?)。链接的答案和ML post指示一个尾随下划线,如
LIBC\u FATAL\u STDERR\u1
中所示。那个下划线不是错别字。我很抱歉因为错误给你们带来了一些不便,谢谢你们纠正我的错别字。嘿,Geno和Charles!非常感谢你们两位的更正!它现在使用下划线。再次非常感谢!!是,例如,重定向适用于
ls
。我尝试使用
ls 1>ls.out
ls--foo 2>ls.err
重定向
stdout
stderr
,两个都成功了。我还通过
ls--foo 2>/dev/null
抑制了
ls
中的错误。我认为错误不会直接发生在程序中,而只是发生在对库
libc
的函数(或任何函数)的调用中。因此,热那亚的解决方案非常有希望,但遗憾的是,它对我不起作用。也许
libm
有一个与
libc
相似的标志?祝你好运。@usr2564301,没有那么大的成就——写
/dev/tty
并不典型。