fprintf与stderr、stdout的使用

#include <stdio.h>

void main()
{
fprintf(stderr,"soyo8888!");
fprintf(stdout,"soyo15can‘t open it !\n");
printf("soyocan‘t open it!\n");
}

---------------------------------------------

上面程序编译成fprint文件,运行显示如下:
soyo8888Can‘t open it! soyo15Can‘t open it! soyoCan‘t open it!

若将输入重定向到一个temp.txt文件中,运行:./fprint >temp.txt 结果如下:
soyo8888Can‘t open it!
查看temp.txt文件内容为:
soyo15Can‘t open it!soyoCan‘t open it!

说明:
stdout -- 标准输出设备 (printf("..")) 同 stdout。
stderr -- 标准错误输出设备 两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

strerr是作为程序运行过程中的错误显示出来的,若想将它重写向到某文件中,需要运行如下命令:
./fprint 2>temp.txt
这样运行结果就为:
soyo15Can‘t open it!soyoCan‘t open it!
查看temp.txt文件的内容是:
soyo8888Can‘t open it!
时间: 2024-10-09 02:16:35

fprintf与stderr、stdout的使用的相关文章

C++ stderr/stdout 重定向到文件

通常,stderr和stdout被用来输出内容显示到屏幕,但是,有时候我们需要把这些信息写到指定的文件,方便随时查阅.最简单的实现方式就是,把 stderr/stdout 的输出重定向到文件. stderr/stdout 重定向到文件 这里以stderr代码说明. #include <stdio.h> #include <stdlib.h> int main( void ) { FILE *stream = freopen( "freopen.out", &qu

stdin,stderr,stdout

在此之前先区分一下:printf,sprintf,fprintf. 1.printf就是标准输出,在屏幕上打印出一段字符串来. #include <stdio.h> 原型:void printf(const char *format,[argument]); 功能:一般用于向标准输出设备按规定格式输出信息. 2.sprintf就是把格式化的数据写入到某个字符串中.返回值字符串的长度. #include <stdio.h> 原型:int sprintf( char *buffer,

stderr,stdout,a.txt缓冲区别

#include<stdlib.h>#include<stdio.h>#include<string.h>#include<error.h>#include<errno.h>#include<unistd.h>#include<strings.h>#include<stdbool.h> #include<sys/stat.h>#include<sys/types.h>#include&l

【转】 Golang输入输出格式化Printf Springf Fprintf..

package main import "fmt"import "os" type point struct { x, y int} func main() { // Go 为常规 Go 值的格式化设计提供了多种打印方式.例 // 如,这里打印了 `point` 结构体的一个实例. p := point{1, 2} fmt.Printf("%v\n", p) // 如果值是一个结构体,`%+v` 的格式化输出内容将包括 // 结构体的字段名. f

Golang Printf、Sprintf 、Fprintf 格式化

/* %v 输出结构体 {10 30} %+v 输出结构体显示字段名 {one:10 tow:30} %#v 输出结构体源代码片段 main.Point{one:10, tow:30} %T 输出值的类型 main.Point %t 输出格式化布尔值 true %d`输出标准的十进制格式化 100 %b`输出标准的二进制格式化 99 对应 1100011 %c`输出定整数的对应字符 99 对应 c %x`输出十六进制编码 99 对应 63 %f`输出十进制格式化 99 对应 63 %e`输出科学

Go 语言基础(七) 之 并发和网络

1.goroutine 在这章中将展示 Go 使用 channel 和 goroutine 开发并行程序的能力. goroutine 是 Go 并发能力的核心要素.但是,goroutine 到底 是什么? 叫做 goroutine 是因为已有的短语--线程.协程.进程等等--传 递了不准确的含义. goroutine 有简单的模型:它是与其他 goroutine 并行执行的, 有着相同地址空间的函数..它是轻量的,仅比分配 栈空间多一点点 . 而初始时栈是很小的,所以它们也是廉价的,并且随着需要

第一天----fclose

http://blog.csdn.net/qin9r3y/article/details/8652207 /*  了解C语言的存储*/ 前一节fopen的返回值FILE *类型的指针是放在堆上 如果一个函数的返回值是指针并且有逆操作的时候,那么返回值的指针一定是在堆上的 如果一个函数的返回值是指针没有逆操作的时候,那么返回值的指针可能是在堆上也可能在静态区 int fclose(FILE *fp); 参数:流 返回值:成功0 : 失败EOF默认为-1. #include <stdio.h> #

Go语言总结和学习指南

早在2009年11月google刚推出go语言的时候,在好奇心的驱使下,就下载体验过.那时的感觉是语法比较奇怪,相关的资源较少,并且习惯了动态语言Python.虽然它一出来就宣称是一种为并发能力而生的语言,但是感觉Python已经能够满足自己的日常的开发要求,所以并不感觉它有什么优势. 但是也在持续的关注它一点一点的发展:发现越来越多的项目采用go作为开发语言来开发程序,也越来越多的程序员,包括Python的程序员,在使用go语言.如今,go1.4 已经支持Android开发,有空又把go拿出来

docker 源码分析 一(基于1.8.2版本),docker daemon启动过程;

最近在研究golang,也学习一下比较火的开源项目docker的源代码,国内比较出名的docker源码分析是孙宏亮大牛写的一系列文章,但是基于的docker版本有点老:索性自己就git 了一下最新的代码研读: docker是c/s的架构,分为docker client 和 docker daemon,client端发送命令,daemon端负责完成client发送过来的命令(如获取和存储镜像.管理容器等).两者之间可以通过TCP,HTTP和UNIX SOCKET来进行通信: docker的启动入口