ustdio.h#
ustdio.h为用户程序提供了标准输入输出函数
- Author
Shihong Wang (jack4shihong@gmail.com)
- Version
0.1
- Date
2023-04-09
- Copyright
Copyright Shihong Wang (c) 2023 with GNU Public License V3.0
Warning
目前库并没有完成需要在完成系统调用后完成该库
Warning
ustdio库仅供用户程序使用, 内核请使用kstdio库
Functions
-
size_t uprintf(const char *format, ...)#
uprintf用于格式化输出字符串
关于各个字段的说明:
flag字段:-: 左对齐输出, 默认是右对齐+: 输出正数前添加加号, 默认不添加#: 当type为b,o,x,X时, 添加前缀0b,0或者0x0: 使用0填充对齐, 默认使用空格填充对齐
width字段:数字: 设置对齐的宽度, 例如:printf("%5d", 100)将会输出100*:动态参数, 由后续的数字指定, 例如:printf("%*d", 5, 10)等价于 printf(“%5d”, 10)-precision字段: -.数字: 设置输出的位数, 例如:printf(“%.2d”, 111)将会输出11-.*: 动态参数, 由后续的数字指定, 例如:printf(“%.*d”, 2, 111)等价于 printf("%.2d", 111)
length字段:h: 输出一个16位宽度的整数, 即:short,unsigned short,int16_t,uint16_tl: 输出一个64位宽度的整数, 即:long,unsigned long,int64_t,uint64_tll: 输出一个64位宽度的整数, 即:long long,unsigned long longPS: RISC-V LP64中long long和long都是64位
type字段:%: 输出一个%p: 输出一个指针, 需要转换为(void*)c: 输出一个字符s: 输出一个\0结尾的字符串b: 以二进制输出一个整数, 无符号o: 以八进制输出一个整数, 无符号i: 以十进制输出一个整数, 有符号d: 以十进制输出一个整数, 有符号u: 以十进制输出一个整数, 无符号x: 以十六进制输出一个整数, 小写字母, 无符号X: 以十六进制输出一个整数, 大写字母, 无符号n: 到此处已经输出的字符的数量, 不会输出文本, 而是将值保存到地址中. 参考: https://blog.csdn.net/zsx0728/article/details/118100389
Note
uprintf函数可以输出的字符串最大长度由constrains.h中的PRINTF_STRING_SIZE宏常量的值决定Note
格式控制字符:
%[flag][width][precision][length]<type>. 其中:type字段必须存在, 其余字段均可选
Warning
uprintf函数仅供用户程序使用, 内核程序请使用kprintf函数Warning
目前
uprintf并没有实现输出, 需要在实现系统调用后再实现该函数- Parameters:
format – 含格式控制字符的格式字符串
... – 可变参数列表
- Returns:
size_t 输出的字符串中的字符数