博客
关于我
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 中的继承机制是什么样的?
    查看>>
    Python 中的装饰器是什么?
    查看>>
    Python 中的装饰器是如何工作的,有哪些实际应用场景?
    查看>>
    python读excel
    查看>>
    Python 中读取 CSV 文件-ChatGPT4o作答
    查看>>
    python请求html_使用Python请求获取HTML?
    查看>>
    Python 之匿名函数和偏函数
    查看>>
    python 之栈的实现
    查看>>
    python语音播放
    查看>>
    python语言:装饰器原理
    查看>>
    Python 交互式数据可视化详解
    查看>>
    python语言有哪些优点和缺点_Python有哪些优缺点,你了解吗?
    查看>>
    Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>
    python 使用filetype校验文件
    查看>>
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>