Linux里面printf作用是什么?

Linux里面printf作用是什么?,第1张

Linux printf命令

Linux printf命令主要作用是输出文本,类似echo,只不过echo更加简单,

printf可以更复杂的格式化方式输出,参考了C语言的printf()函数,Python里的print也类似:

例子如下:

1.简单输出

[root@oldboy ~]# echo oldboy

oldboy

[root@oldboy ~]# printf oldboy"\n" #\n就是换行,必须加,否则不换行。

oldboy

2.格式化输出:

[root@oldboy ~]# echo -e "oldboy\noldgirl"

oldboy

oldgirl

oldboynoldgirln[root@oldboy ~]# printf "oldboy\noldgirl\n"

oldboy

oldgirl

3.复杂格式输出

1)字符串格式化

[root@oldboy ~]# printf "%s\n" oldboy oldgirl littleboy

oldboy

oldgirl

littleboy

2)小数格式化

[root@oldboy ~]# printf "%2f\n" 1.1 2.2 3.3

1.100000

2.200000

3.300000

3)整数格式化输出

[root@oldboy ~]# printf "%d\n" 1 2 3

1

2

3

说明:

1、【对其符号】有-表示左对齐输出,如省略表示右对齐输出。

2、【占位符号】有0表示指定空位填0,如省略表示指定空位不填。

3、【指定精度】m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

Linux下C语言的printf是C标准I/O库中的格式化输出函数之一,将格式化数据写到标准输出stdout。

1 printf首先把格式化数据写到标准I/O的缓存,可以用setbuf和setvbuf设置缓存选项;

2 调用write系统调用,把标准I/O的缓存数据写到文件描述符STDOUT_FILENO,则标准I/O缓存中的数据就被送到内核缓存;

3 内核把缓存中的数据输出到标准输出stdout对应的文件描述符STDOUT_FILENO。

这是我的理解,基本应该就是这个流程,内核层次上的细节我就不清楚了。

另外:

1 printf返回写入的字节数;

2 printf处理可变参数表使用的是va_list,当然也有相应的vprintf,它的第三个参数就是一个va_list


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7454296.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存