Go to file
Yan Chao Mei 7d9b62ffe2 add readme & test 2023-10-11 10:11:11 +08:00
Readme.md add readme & test 2023-10-11 10:11:11 +08:00
Readme.pdf add readme & test 2023-10-11 10:11:11 +08:00
fscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
fwscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
scanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
sscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
swscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vfscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vfwscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vsscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vswscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
vwscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00
wscanf_s.c add readme & test 2023-10-11 10:11:11 +08:00

Readme.md

赛题背景

随着安全需求日益增长C语言中的传统函数已不能满足当今的安全需求。C11标准的附录K中提到的安全函数就是为了解决这个问题而产生的。为此基于openKylin开源软件仓库safeclib我们希望进一步完善其提供的安全函数。

实现要求

1 读取函数系列

读取函数系列的改动主要在做了对%s, %c, and %[ 的支持

a. fscanf_s 按照C11标准附录K中的要求实现fscanf_s函数。函数应严格检查格式化字符串长度并确保在读取时不会超出提供的缓冲区大小。

b. scanf_s 与fscanf_s类似但是从标准输入读取。

c. sscanf_s 从提供的字符串中读取,确保缓冲区长度不会被超出。

d. vfscanf_s 与fscanf_s相似但是接受va_list参数。

e. vscanf_s 与scanf_s相似但是接受va_list参数。

f. vsscanf_s 与sscanf_s相似但是接受va_list参数。

2 宽字符读取函数系列

宽字符读取函数系列,与上一个系列类似,主要改成了使用宽字符

a. fwscanf_s 按照C11标准附录K中的要求实现fwscanf_s函数与fscanf_s功能类似但处理宽字符。

b. swscanf_s 与fwscanf_s类似但从提供的宽字符字符串中读取。

c. vfwscanf_s 与fwscanf_s相似但接受va_list参数。

d. vswscanf_s 与swscanf_s相似但接受va_list参数。

e. vwscanf_s 从标准输入读取宽字符并接受va_list参数。

f. wscanf_s 从标准输入读取宽字符。

同时在每个函数文件里,实现了其测试函数。 仓库代码还需要放到safelib中加入头文件后进行测试。目前仅做了简单验证后续需要完善。