gpt4 book ai didi

c - C 程序没有得到预期的错误输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:14 25 4
gpt4 key购买 nike

我有一个由 cron 任务调用的小脚本,它只启动一个程序并将标准输出重定向到一个文件,将错误输出重定向到另一个文件。问题是它适用于标准输出但不适用于错误输出。

这是我的脚本:

#/bin/bash

echo "---------------------------------------------" \
>> /usr/src/parser_mail/bin/log/log
echo "Parsing du " `date` >> /usr/src/parser_mail/bin/log/log
echo "---------------------------------------------" \
>> /usr/src/parser_mail/bin/log/log
/usr/src/parser_mail/bin/parser \
>> /usr/src/parser_mail/bin/log/log \
2>> /usr/src/parser_mail/bin/log/error

经过几次测试,我的解析器似乎没有发送任何错误...

代码:

if (mysql_query(conn, sql))
{
fprintf(stderr, "\n#################################################\n");
fprintf(stderr, "ERREUR : %s\nInscription annulee pour cette horaire.\n",
mysql_error(conn));
fprintf(stderr, "#################################################\n");
}
else
{
printf("*");fflush(stdout);
}

而且我可以在日志中看到没有打印“*”。所以它应该在错误输出上打印一些东西。

最佳答案

首先要做的是摆脱我们在问题中看不到的东西,这是您的实际解析器。

暂时更改您的命令:

/usr/src/parser_mail/bin/parser

到:

( echo xyzzy_output ; echo xyzzy_error >&2 )

并将重定向留在最后。您应该看到这两行进入两个单独的文件。


如果他们这样做,那么您的解析器很可能没有正常运行,例如没有向 stderr 发送任何内容,或者将两个句柄合并以便它们在之前 你的重定向开始了。

在这种情况下,您可能希望使用类似以下内容的命令行运行解析器:

/usr/src/parser_mail/bin/parser >xyzzy_out 2>xyzzy_err

并查看每个文件中显示的内容。例如,解析器可能没有发送任何东西到stderr


如果您没有得到两个具有正确输出的文件,那么您需要查看其他可能性,例如权限,或者在您不知情的情况下围绕删除文件运行的疯狂进程:-)

关于c - C 程序没有得到预期的错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487546/

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