司马南:标尺

张津瑜厕所门事件 8分钟视频9分52秒流出

快消管培生补招|世界500强雀巢惠氏招聘客户发展管培生!简历直投HR邮箱,一周内回复

母子乱伦:和儿子做了,我该怎么办?

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

Hello World的秘密

码农翻身刘欣 码农翻身 2021-04-20

后记:系统调用不同于普通的函数调用,是操作系统提供的接口,需要从用户态进入内核态才能完成,虽然没有发生进程的切换,但是在内核态依然要保存用户态的一些上下文,这样才能恢复用户态程序的运行。C函数库在应用程序和操作系统之间起到了重要的桥梁作用,它不仅仅是像本文中的hello world那样做一个简单的中转,还可能会封装底层的系统调用,提供更高级的功能。比如存储空间的分配和回收,可以有很多算法(最佳适应,首次适应等), 但是Unix提供的系统调用是sbrk,只会按照字节数增加或减少进程地址空间,这对应用程序来说是不够的,这时候C函数库的封装函数malloc就可以发挥作用了。

文章中hello world的参数特别简单,放到寄存器中就可以了,如果参数特别多,就需要在内存中开辟一段区域,把参数放入其中,然后把这个区域的指针放入到寄存器中来传递。


在公众号回复关键字“漫画”,即可看到漫画全集


相关漫画

    文章有问题?点此查看未经处理的缓存