在我的程序fprintf()
中返回-1,表示有错误。我怎样才能找出实际的错误是什么?如何找到fprintf()的实际错误?
回答
#include <errno.h>
#include <string.h>
...
rc = fprintf(...)
if (rc < 0)
printf("errno=%d, err_msg=\"%s\"\n", errno,strerror(errno))
你不应该自己声明'errno',只需要包含'
点了。 libc操作系统依赖。我认为在旧的Linux libcs中,你必须声明它为extern tho。纠正。 – user237419 2011-04-20 08:01:04
Err,adirau,这甚至是_worse._“#ifndef”只适用于预处理器宏而不是变量。由于ISO要求'errno.h'定义一个'errno''变量“,所以最好抛弃整个'#ifdef'块。我为你解决它,希望你不介意。 – paxdiablo 2011-04-20 08:19:01
您需要检查errno
的值。大多数库函数会将其设置为特定的错误代码,您可以在errno.h
中查找它或使用perror
或strerror
来获取用户可读的版本。
例如:
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main (void) {
FILE *fh = fopen ("junk", "w");
if (fh != NULL) {
if (fprintf (fh, "%s", "hello") < 0)
fprintf (stderr, "err=%d: %s\n", errno, strerror (errno));
fclose (fh);
}
return 0;
}
- 1. 错误处理。如何将实际收到的错误传回
- 2. 发生JavaScript错误时找到实际的源文件行号?
- 3. 如何找到BFS找到的实际路径?
- 4. 隐含的实际错误
- 5. fprintf in文件未找到
- 6. grails输出“发生错误”,如何显示实际错误?
- 7. java.lang.reflect.InvocationTargetException - 确定实际错误?
- 8. Matlab:错误使用fprintf
- 9. malloc /总线错误与fprintf
- 10. 文件处理fprintf错误
- 11. 如何找出JFrame的实际大小?
- 12. 如何找到POEdit错误
- 13. 找到zip的实际文件名
- 14. 需要在Internet Explorer脚本错误中找到line/char的实际位置?
- 15. 如何找到实际所需的宝石套装
- 16. 如何找到最长增加子序列的实际序列?
- 17. 如何找到与javascript有关的实际链接
- 18. Accept-Encoding如何找到文件实际上是压缩的
- 19. 我如何找到录像(.AVI .MP4)实际录制的日期?
- 20. 如何找到百分比宽度的实际像素宽度
- 21. 如何找到除了R.id之外的实际ID?
- 22. JavaScript,RegEx - 如何获取实际找到的字符串
- 23. 统一实际分布的C++错误?
- 24. 如何获取HttpResponseException后面的实际错误?
- 25. 如何获取Codeigniter中的实际错误消息?
- 26. 如何在Python中写出错误异常(以及实际错误)的行
- 27. fprintf段错
- 28. 打印到标准错误时检查fprintf时出错
- 29. 找我的实际DNS
- 30. 如何找到导致错误的行
它是在线42 – AProgrammer 2011-04-20 07:02:26
第36字符只是为了解释@AProgrammer的讽刺(和有趣)的答案:当你问这个是关系到一个问题你的代码,它实际上**更有效率地发布实际的代码与你的问题。我们显然无法猜出您输入的内容。 – ereOn 2011-04-20 07:14:56
36是什么意思? :) – user237419 2011-04-20 07:16:35