首页 > 其他分享 > BUAA_2023_os_lab1上机总结

BUAA_2023_os_lab1上机总结

时间:2023-03-21 10:37:18浏览次数:39  
标签:函数 写入 lab1 BUAA char 地址 2023 字符串 myoutputk

依旧是两道题,exam + extra

exam

实现一个自定义的格式化字符串'%R',他的格式和%d完全相同,但是输出的值不同,具体地可以说:
printf("%...R",a,b);
等价于:
printf("(%...d,%...d)",a,b);
没错,%R可以从当前参数位往后读取两个参数。
其中,"..."表示用来控制输出格式的那一堆东西,%R的那一堆东西和%d的完全相同。

extra

实现一个sprintf(char *buf, const char* fmat, ...)函数,可以将格式化字符串写入buf字符数组中,同时返回写入buf的字符数量
实现要点:
自定义一个myoutputk函数来传给vprintfmt,里面要实现这样的功能:将要输入的内容从原本的写入控制台地址变为写入data->addr字符串地址。
注意!!myoutputk函数写入后,一定要在这次调用myoutputk函数的末尾加上为data->addr末尾添'\0'的代码,不然就bug,字符串需要以'\0'来作为其结束的标记。

比较阴间的点在于如何在myoutputk函数里修改地址的值以及长度(处理一个格式化字符串,vprintfmt函数可能会多次调用myoutputk函数,因此每次写入的时候要实时更新地址,不然的话就会始终写入原始的首地址),我们知道想要在函数中修改参数变量的值的话,需要传进来它的地址,我们可以定义一个结构体,这个结构体:

typedef struct {
  char *addr;
  size_t length;
} Data;

这样的话只要将结构体的地址传给myoutputk的char *data参数,就可以改变其地址上的值了。

标签:函数,写入,lab1,BUAA,char,地址,2023,字符串,myoutputk
From: https://www.cnblogs.com/juantify/p/17238949.html

相关文章

  • 【2023-03-20】生活主线
    20:00我伸展双臂,也不能在天空飞翔,会飞的小鸟却不能像我,在地上快快地奔跑。我摇晃身体,也摇不出好听的声响,会响的铃铛却不能像我,会唱好多好多的歌。铃铛、小鸟,还有我,我们不......
  • .NET周报 【3月第3期 2023-03-19】
    国内文章记一次.NET某汽车零件采集系统卡死分析https://www.cnblogs.com/huangxincheng/p/17214154.html前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡......
  • x210-2023-03-20
    1、先前移植好的uboot由于是从uboot官网下载一步一步改出来的,所以第一个问题会发现无法保存ENV(通过测试setenv和saveenvbootdelay参数即可知道,saveenv失败),另一个问题是没......
  • 2023-3-20
    2023-3-20练习题8.72设\[f(x,y)=\frac{1}{1-xy}~~~((x,y)\in[0,1]^2\setminus\{(1,1)\}).\]求证:\(f\)连续但不一致连续\(f(x,y)\)在\([0,1]^2\setminus\{(1,......
  • SpringMVC-lesson01-servlet复习2-2023-03-20
    1、欢迎页设置在web文件夹下新建form.jsp:input的类型是text,名字是:method。一旦输入add或delete提交,就会到HelloServlet进行跳转<%--CreatedbyIntelliJI......
  • 20230320
    https://github.com/trustedsec/social-engineer-toolkit/issues/503errorinsetoolkit#503使用setoolkit的时候碰到了**[\*]Looksliketheweb_servercan'tbind......
  • [20230320]oracle各种name参数.txt
    [20230320]oracle各种name参数.txt--//如果讲oracle的各种name参数,很容易混乱,特别对于初学者.通过一个简单例子概括总结一下.--//主要集中在DB_NAME,DB_UNIQUE_NAME,SE......
  • Blender Apps?2023年最值得期待的 9 个 Blender 开发项目抢先看!
    2023年对Blender来说将会是很有趣的一年,除了努力保持核心功能稳定和不断迭代之外,几个可能会在今年实现且备受关注的功能开发项目已经开始!赶紧跟着​​云渲染​​小编一起......
  • b01lers CTF & WolvCTF 2023 部分Re WriteUp
    这周打了两个比赛,个人感觉b01lersCTF偏简单一些,WolvCTF比前者难一点。养生型选手,一共做了三个题b01lersCTFSafe一个嵌入式逆向的题目,是逆向ArduinoUNO一个门锁......
  • 《2023大型企业财务数智化白皮书》:大型企业财务数智化建设应用架构
    2023年3月16日,用友在北京国家会计学院举办“智能会计价值财务”2023企业数智化财务创新峰会·北京站。会上,用友《大型企业财务数智化白皮书》重磅发布,其核心观点之一中强调......