首页 > 其他分享 >重定向sprintf和print的区别

重定向sprintf和print的区别

时间:2023-12-30 15:01:41浏览次数:39  
标签:va ch 重定向 format sprintf arg print string

 1 /**
 2   * 函    数:使用printf需要重定向的底层函数
 3   * 参    数:保持原始格式即可,无需变动
 4   * 返 回 值:保持原始格式即可,无需变动
 5   */
 6 int fputc(int ch, FILE *f)
 7 {
 8     Serial_SendByte(ch);
 9     return ch;
10 }
11 
12 /**
13   * 函    数:自己封装的prinf函数
14   * 参    数:format 格式化字符串
15   * 参    数:... 可变的参数列表
16   * 返 回 值:无
17   */
18 void Serial_Printf(char *format, ...)
19 {
20     char string[100];
21     va_list arg;
22     va_start(arg,format);
23     vsprintf(string,format,arg);
24     va_end(arg);
25     Serial_SendString(string);
26 }

printf的函数是固定的,不可以更改,只能定义一次,因此只能重定向一个串口

sprintf的函数不是固定的,是自己取的,因此我们可以写多个类似的函数,只要不重名就行了,因此可以同时重定向多个串口

标签:va,ch,重定向,format,sprintf,arg,print,string
From: https://www.cnblogs.com/Sandals-little/p/17936378.html

相关文章

  • python学习笔记4(print复杂语法、input、注释、代码缩进)
    上一节学习了概述、开发工具、编写方法、print简单语法本节内容:(一)print复杂语法1、多条print输出到一行显示print('北京',end='---->')print('欢迎你')2、使用连接符连接多个字符串+不能连接数据值和其他类型print(192,168,1,1,sep='.')#多个字符串通过.间隔print('北京欢迎你'+'2......
  • 转发与重定向
    转发和重定向是两种不同的网络请求处理方式,它们在多个方面存在显著差异:请求次数:转发只需要发送一次请求,而重定向需要发送两次请求。地址栏变化:重定向地址栏会发生变化,而转发地址栏不会发生变化。是否共享数据:重定向两次请求不共享数据,而转发一次请求共享数据。跳转限制:重定向可以跳......
  • python学习笔记3(概述、开发工具、编写方法、print简单语法)
    上一节学习了环境准备、职业方向、执行方式三个方面学习本节内容:(一)概述1、了解python语言1989年荷兰人发明、面向对向、解释型设计哲学:优雅、明确、简单,“人生苦短,我用python”脱水语言,能够和其他语言编写的模块轻松联结,“脱水语言”2、版本发展历程发展历程比较简单,前两天我在网上......
  • Go语言中的HTTP重定向
    大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP重定向,让我们开始吧!大家都知道,网站开发中有时候需要将用户的请求从一个URL导向到另一个URL。比如说,你可能想将旧的URL结构重定向到新的URL结构,或者将HTTPS重定向到HTTP等。这就需要我们掌握一个神秘的工具:H......
  • AIKit v4.11.0 – WordPress AI 自动编写器、聊天机器人、写作助手和内容重定向器 / O
    AIKitv4.11.0:WordPress的AI革命一、引言AIKitv4.11.0是一款为WordPress用户精心设计的强大插件,该插件集成了OpenAI的GPT-3技术,为用户提供了前所未有的AI写作和聊天机器人功能。此版本的推出,将WordPress的功能扩展到了全新的领域,利用人工智能技术,让网站内容创作变得更加简单......
  • C++出现“printf/cout不明确”的问题的原因和解决方法(转)
    如果你有幸看到这个博客,那么我猜你应该已经碰上这个问题,而且正急着寻求方法,因此,我先把解决方法用最简单的一句话写出来解决方法为:**将文件中原有的usingnamespacestd;删除后保存cpp文件,再加上usingnamespacestd;保存cpp文件。问题即可解决**如果根据上述方法已经解决了这个问......
  • icmp重定向攻击
    icmp协议概述1、网络控制报文协议,目的在于IP主机、路由器之间传递控制消息2、控制消息是指网络通不通,主机是否可达,路由是否可用等网络本身消息3、控制消息不传输用户数据,但对于用户数据传递起着重要作用4、icmp属于网络层,在ip协议上层ICMP常见类型与编码 icmp重定向原理......
  • printf, fprintf, sprintf, vsprintf, snprintf, vsnprintf之间的用法和区别
    1、printf是打印格式化字符串,返回值是成功打印的字符数;intprintf(constchar*format,...);  2、fprintf是将格式化数据写入到指定文件流中;intfprintf(FILE*stream,constchar*format,...);  3、sprintf是将格式化的数据写入到指定字符串;intsprintf(char*str,......
  • I/O重定向与管道、存储管理
    I/O重定向与管道当谈论Linux操作系统时,I/O重定向和管道是非常重要的概念。它们允许用户以非常灵活的方式处理输入和输出,使得命令行操作变得更加强大和高效。在这篇博客中,我们将深入探讨Linux中I/O重定向和管道的概念、用法和实际应用。I/O重定向I/O重定向是Linux中一......
  • linux kernel modify printk buf size
    linuxkernelmodifyprintkbufsizeconfigureCONFIG_LOG_BUF_SHIFTmodifycode:wyk@ubuntu:~/soc/linux$gitdiffkernel/printk/printk.cdiff--gita/kernel/printk/printk.cb/kernel/printk/printk.cindexfd337bf9b..aaa98a8eb100644---a/kernel/printk/......