gpt4 book ai didi

c++ - 将执行错误重定向到文件 c++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:42 24 4
gpt4 key购买 nike

如何在 bash 中重定向 c++ 可执行文件的执行错误?我发现 2> 有助于识别编译错误:

g++ example.cpp 2> compErr.txt

但是使用该命令运行可执行文件仍然会将错误发送到标准输出:

$ ./a.out 2> e.txt
Floating point exception (core dumped)

最佳答案

实际上,错误“浮点异常(核心已转储)”不是来自可执行文件,而是来自 shell!来自 bash 的消息不会被输出重定向抑制,但有一个标志可以启用/禁用这些消息。

您可以为某些会导致程序退出的错误安装信号处理程序,并将某些内容写入合适的目的地。有些信号无法拦截,有些则难以处理。这是您可以从代码内部执行的方法。

如果您想走得更远,您可以 fork() 您的程序第一件事,并在子进程中完成实际工作。父进程本质上只是为子进程 waitpid() 并使用接收到的结果结构中的信息向文件报告错误。

关于c++ - 将执行错误重定向到文件 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27533711/

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