在我的 C 程序中,我正在创建一个子进程并在子进程中运行 execvp。但是我正在尝试将错误消息更改为其他内容,用于 execvp 命令(如果有错误)。
我知道如果它返回了,那就是一个错误,然后我可以在下一行打印我自己的自定义错误消息。这是一种可能发生的错误,例如,如果我将命令“sdfsd”交给 execvp,就会发生这种情况。这部分对我有用。
但是,如果我输入“find sdfsd”,那么它不会返回并打印“find: `sdfsd': No such file or directory”。
我想将此消息(以及基本上来自 exevcp 的任何类型的错误消息)更改为我自己的自定义消息。
我相信我可以使用 dup2 来做到这一点,但我不确定如何......
在我尝试的子进程中
dup2(STDERR_FILENO, 1);
fclose(stderr);
但这只是阻止子进程写入任何错误消息。在所有情况下,我仍然无法打印自己的消息..
有谁知道如何做到这一点?谢谢