c - 如何在不使用重定向运算符的情况下重定向链接器错误?

标签 c linux

[这个问题不是关于修复错误的。但是关于重定向它]

我有一个程序 (C/linux),由于缺少共享库而在控制台上显示错误。它说“无法加载库......”。如何将此输出重定向到文件中?

我在我的程序中试过这个:

close(2);
open("/home/user/test.txt", O_CREAT|O_RDWR);

它正确地重定向了程序 printfs 生成的输出。但是“无法加载库......”仍然出现在控制台上!

我不想为此目的使用 > 运算符。我想从我的程序内部进行。有什么建议么?

谢谢

最佳答案

错误消息由加载程序生成,甚至在程序启动之前就发生了。因此,在甚至无法运行的程序中,您无法做任何事情来影响加载器的行为。

如果您真的需要修改 shell 使用的文件描述符,请查看 exec shell 命令以永久关闭和重定向文件描述符。这样您就可以使用重定向运算符 >,尽管可以说这是一种不太整洁的方法。

关于c - 如何在不使用重定向运算符的情况下重定向链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764199/

相关文章:

c - If Else 在 While 循环中

c - 逐行读取 C 文件,其中每行的长度未知

linux - authorized_keys 不为新用户提供

linux - 从压缩文件中快速 grep 多个值

linux - Linux 堆栈的 ASLR 熵位

c++ - 为 Windows 开发音乐应用程序

在 C 中将毫秒转换为秒

c - fork 两个进程会导致多个进程

linux - 如何调试 bash 脚本并获取每个命令的执行时间

c - 助记符中的无效字符 '\'