博客
关于我
Linux fprintf的用法
阅读量:219 次
发布时间:2019-02-28

本文共 1282 字,大约阅读时间需要 4 分钟。

一、fprintf 函数描述

fprintf函数用于格式化打印和输出数据,可将输出数据写入指定的流文件中。该函数根据格式字符串format,格式化数据并将结果输出到指定流stream中,直到遇到终止字符'\0'为止。

函数声明:

  • int fprintf(FILE* stream, const char* format, [argument])

参数说明:

  • stream:指向FILE对象的指针,表示输出数据流。
  • format:格式化字符串,可包含嵌入格式标签(如%[flags][width][.precision][length]specifier).
  • [argument]:可选的参数列表,用于替换format中的格式标签.

Linux系统提供五种标准流:

  • stdin:标准输入流(文件描述符0)
  • stdout:标准输出流(文件描述符1)
  • stderr:标准错误流(文件描述符2)
  • stdprn:标准打印机流
  • stdaux:标准串行设备流
  • stderr的优先级高于stdout,适用于输出调试信息时的高优先级输出。

    二、shell 输出重定向

    stdin、stdout和stderr并非只能来自键盘或屏幕,它们可以被重定向到磁盘文件或其他设备。常见的重定向方式包括:

  • 使用`>`符号进行输出重定向,例如:
  • $ ./run > output.log
  • 使用`>>`符号进行追加式重定向:
  • $ ./run >> output.log

    运行脚本时,正常日志会输出到指定文件中,但错误信息仍会输出到屏幕。例如:

  • 将正常日志和错误日志分别重定向到不同的文件:
  • $ ./run > output.log 2> error.log
  • 将错误日志与正常日志合并:
  • $ ./run > output.log 2>&1

    三、程序中输出重定向

    在程序中实现输出重定向可通过`freopen`函数完成。该函数用于重新打开文件流,并将指定的标准流(如stdin、stdout、stderr)指向新的文件。

    函数声明:

    • FILE* freopen(const char *filename, const char *mode, FILE* stream);

    参数说明:

    • filename:要打开的文件名。
    • mode:文件打开模式,与`fopen`函数中的模式一致。
    • stream:目标流(如stdin、stdout、stderr)

    使用示例:

    # 将stdin重定向到文件  freopen("data.in", "r", stdin);  将stdout输出到文件 freopen("data.out", "w", stdout); 将stderr重定向到日志文件 if (freopen("err.log", "w", stderr) == NULL) { fprintf(stderr, "error redirecting stderr\n"); }

    注意:在使用`freopen`后,需确保正确关闭重定向的文件,以避免资源泄漏。可使用`fclose`函数关闭重定向的文件和标准流。

    转载地址:http://xuwp.baihongyu.com/

    你可能感兴趣的文章
    python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
    查看>>
    python基于flask搭建http服务(三)—— 使用gunicorn部署项目
    查看>>
    python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
    查看>>
    Python块键盘/鼠标输入
    查看>>
    python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>