C语言:为什么用fprintf(stderr,Error);比printf(Error);更好?

C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?_百度知道

 C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
2009-05-27 17:03 提问者: Wave_Dan |浏览次数:2855次

请问:
当文件指针fp返回NULL值而要提示出错信息时,
为什么用fprintf(stderr,"Error");比用printf("Error");更好?
越详细越好!谢谢各位了!

我来帮他解答
满意回答
2009-05-27 17:13

一般情况下,你这两个语句运行的结果是相同的,没有区别,只有一下情况才有区别:

运行你的程序的时候,命令行上把输出结果进行的转向,比如使用下面的命令把你的程序a.c运行的结果转向到记事本文件a.txt:
a.exe > a.txt

在这样的情况,如果使用printf输出错误信息,会保存到a.txt文件里面,如果使用fprintf输出错误,会显示在屏幕上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

w3m 使用总结

安装 sudo apt install w3m终端 w3m www.baidu.com 即可打开w3m是个开放源代码的命令行下面的网页浏览器。一般的linux系统都会自带这个工具,可以通过它在命令行下面浏览网页。本文介绍这个工具的使用方法。 [功能] w3m是个开放源代码的命令行下面的网页浏览器。 它…

set_error_handler自定义错误处理

刚看到了App.class.php,里面有个自定义错误的函数appError 刚还在怀疑。咋这么多参数,虽然看起来都是有用的,不过有些头晕。 继续往下看,看到了init()里的第一句话set_error_handler(array(&$this,”appError”)); 于是好好搜…

vector查找、插入、删除时效率对比

vector底层实现的机制时动态数组,因此适用于查找比较频繁的场景。那么在vector的中push_back()一个元素时或者在尾部删除一个元素时,效率是不是就高? 结果:不是。无论在任何位置插入或者删除元素时,都会进行内存的分配…

jquery如何获取checkbox的值

jquery如何获取checkbox的值 一、总结 一句话总结:就是通过jquery获取哪些对应name的checkbox,然后找出:check(被选中的),然后通过jquery的each遍历获取这些的值即可 $(input[namecheckboxName]:checked).each遍历取值…

Linux文件查找命令find,xargs详述

Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解&#xf…

WTL 学习博文地址

http://blog.chinaunix.net/u/884/showart_148905.html转载于:https://www.cnblogs.com/changping/archive/2010/11/09/1873078.html

git命令:修改已经commit的注释

在使用git命令时,有时commit后,突然想起来忘记修改commit的注释。修改commit的注释使用下面的命令: git commit --amend 本人也是最近2周才开始使用git,有些也理解不到位,在工作中实操之后记录下来,工作环…

当前读与快照读

概念 快照读 读取的是记录数据的可见版本(可能是过期的数据),不用加锁 当前读 读取的是记录数据的最新版本,并且当前读返回的记录都会加上锁,保证其他事务不会再并发的修改这条记录   概念说的比较虚,也不…

误删表数据,如何恢复过来

/* 真实案例:在执行语句的时候错误的把系统中的一个表的数据全部删除 在删除之前,我做过一次完整的数据库备份,再删除之后,我第一时 间做了尾日志备份 也就是说 我手上现在有一份最新的完整备份 和删除数据之后的尾 日…

git命令:将多个commit提交记录修改为1条

本人也是最近2周才开始使用git,有些也理解不到位,在工作中实操之后记录下来,工作环境linux ubuntu。 变基时有六个命令可用: pick pick只是意味着包括提交。重新进行命令时,重新安排pick命令的顺序会更改提交的顺序…

随手笔记

import turtleturtle.bgcolor("red")turtle.fillcolor("yellow")turtle.color(yellow)turtle.speed(10)#主星turtle.begin_fill()turtle.up()turtle.goto(-600,220) turtle.down()for i in range (5): turtle.forward(150)turtle.right(144)turtle.end_…

修改、读取txt文档

1、使用FileStream读写文件文件头:using System;using System.Collections.Generic;using System.Text;using System.IO;读文件核心代码:byte[] byData new byte[100];char[] charData new char[1000];try{FileStream sFile new FileStream("文件…

详解AST抽象语法树

浅谈 AST 先来看一下把一个简单的函数转换成AST之后的样子。 // 简单函数 function square(n) {return n * n; }// 转换后的AST {type: "FunctionDeclaration",id: {type: "Identifier",name: "square"},params: [{type: "Identifier&quo…

struct linger

TCP连接断开的时候调用close socket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢? 是通过设置socket描述符一个linger结构体属性。 linger结构体数据结构如下: struct linger { int l_onoff; int l_linge…

Oracle PL/SQL匿名块(三)

转载: http://blog.163.com/lyq_163_2009/blog/static/134082696201071210464738/ //错误处理 declare v_temp number(4); begin select empno into v_temp from emp where deptno10; exception when too_many_rows then dbms_output.put_line(太多记录了...); wh…

rbac 权限分配, 基于formset实现,批量增加

这里需要两个知识点:  - formset  - 自动发现项目中的URL1. 什么是formset:  Django中 form组件 或 ModelForm组件,用于做一个表单的验证。 接收前端form表单中的数据,并进行验证。 并且还可以用于表单的渲染工作。 (就是直…

linux下unix timestamp 与 可视化时间/常规时间进行转换

unix timestamp 与 可视化时间/常规时间进行转换。 最近工作中需要根据可视化时间得到unix timestamp&#xff0c;完成工作之后记录下来了&#xff0c;防止下次遇到此问题时&#xff0c;又需要重新梳理&#xff0c;直接上代码了 &#xff1a; #include <iostream> #inc…

别让自己活的太累

人之所以会心累&#xff0c;就是常常徘徊在坚持和放弃之间&#xff0c;举棋不定。生活中总会有一些值得我们记忆的东西&#xff0c;也有一些必须要放弃的东西。放弃与坚持&#xff0c;是每个人面对人生问题的一种态度。勇于放弃是一种大气&#xff0c;敢于坚持何尝不是一种勇气…

SQL Server2008R2查询数据库的物理路径

1.首先在Management Studio管理窗口中选择数据库为master.2.再在查询命令窗口中输入以下语句&#xff1a;select name,fileName from sysaltfiles where name like %你要查询的数据库名称%转载于:https://blog.51cto.com/baiyan425/1119204

HDU 1247 Hat’s Words 字典树(Trie树)

HDU 1247 Hat’s Words 字典树(Trie树) 字典树的建立是应该都是一样的 下面是我的做法: 建立完后, 对每一个单词都进行find_string()判断是否符合, 分别对其分成两半, 用j分隔开(左闭右开); 分别find()其子串[0, j1), [j1, string_len), 当两子串都找到后,则输出此主串, 然后,b…