【操作系统】30天自制操作系统--(28)兼容标准函数(完)

        至此,操作系统基本框架已经完成,后本章主要包含了原书第29和30天的内容,后面就是一些修修补补的工作,主要是增加了几个有用的应用程序,由于有些应用程序篇幅比较长,这边就不一一列举了,有兴趣的可以自行看书。

一 兼容标准函数

        C语言当中有一些标准函数,诸如printf、putchar、strcmp、malloc等。如果将他们封装好的话,那么可以用在windows或则linux上面的应用程序就可以移植过来了,非常的方便。

        其实主要就是利用之前写好的API进行封装,例如putchar、exit:

#include "apilib.h"

int putchar(int c)
{
    api_putchar(c);
    return c;
}

void exit(int status)
{
    api_end();
}

        再列举一个printf标准函数:

#include <stdio.h>
#include <stdarg.h>              // 包含了这个头才能用va_list来获取...中传递的参数
#include "apilib.h"

int printf(char *format, ...) {
    va_list ap;
    char s[1000];
    int i;

    va_start(ap, format);         // 将 ... 参数和 format 绑定
    i = vsprintf(s, format, ap);  // 将 ... 以 format 格式写入 s 中
    api_putstr0(s);               // 利用之前既有的api打印函数
    va_end(ap);                   // 有start就有end
    return i;
}

二 一些应用程序

        本书到这边增加了不少应用程序,包括:创建非矩形窗口、一个画线的程序、防御外星人游戏、命令行计算器、文本阅览器、MML播放器、图片阅览器等。这边不一一列举。

        最后针对IPL做了一些改良,用9个柱面完成了之前10个柱面的事情,加快了操作系统的引导速度(关于IPL的具体描述参考之前的【操作系统】30天自制操作系统--(2)导入C语言)。

三 总结

        至此,这个操作系统已经基本完成了。回顾一下从第一天到现在,作者用尽量通俗易懂的描述和尽量简洁明了的程序,向我们传递出不少的知识,我自己也从中间学到了不少东西,不过要将所学的东西融会贯通,还需要学而时习之,继续加油吧~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值