Linux系统编程1_C标准函数库和Linux系统调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统编程1_C标准函数库和Linux系统调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2835字,纯文字阅读大概需要5分钟。
内容图文
![Linux系统编程1_C标准函数库和Linux系统调用](/upload/InfoBanner/zyjiaocheng/939/eb498459a0b24452a0fc2a576746fe13.jpg)
系统调用和库函数的区别:
使用系统调用会影响系统的性能。
在执行调用时的从用户态切换到内核态,再返回用户态会有系统开销。
为了减少开销,因此需要减少系统调用的次数,并且让每次系统调用尽可能的完成多的任务。
Linux系统提供了一系列的标准函数库。
使用标准库函数,可以高效的写任意长度的数据块,库函数在数据满足数据块长度要求时安排执行底层系统调用。
一般地,操作系统为了考虑实现的难度和管理的方便,它只提供一少部分的系统调用,
这些系统调用一般都是由C和汇编混合编写实现的,其接口用C来定义,而具体的实现则是汇编,
这样的好处就是执行效率高,而且,极大的方便了上层调用。
库函数(Library function)是把函数放到库里,供别人使用的一种方式。
方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。
一般放在.lib文件中。库函数调用则是面向应用开发的,库函数可分为两类
一类是C语言标准规定的库函数,一类是编译器特定的库函数。
glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库。
这些基本函数都是被标准化了的,而且这些函数通常都是用汇编直接实现的。
glibc 为程序员提供丰富的 API(Application Programming Interface),
我们经常说到的POSIX(Portable Operating System Interface of Unix)是针对API的标准,
即针对API的函数名,返回值,参数类型等。POSIX兼容也就指定这些接口函数兼容,但是并不管API具体如何实现。
随着系统提供的这些库函数把系统调用进行封装或者组合,可以实现更多的功能,
这样的库函数能够实现一些对内核来说比较复杂的操作。
系统调用是为了方便使用操作系统的接口,而库函数则是为了人们编程的方便。
库函数调用与系统无关,不同的系统,调用库函数,库函数会调用不同的底层函数实现,因此可移植性好。
由于库函数是基于c库的,因此不能用于内核对于底层驱动设备的操作。
系统调用与库函数是什么,区别是什么:
https://blog.csdn.net/lht1314tttt/article/details/79150776
常用ANSI C标准库函数:
https://blog.csdn.net/cclethe/article/details/74859507
Linux常用系统调用:
https://www.cnblogs.com/shijiaqi1066/p/5749030.html
==============================================================
glibc和libc都是Linux下的C函数库:
libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GNU C 函数库。
ANSI C 函数库是基本的 C 语言函数库,包含了 C 语言最基本的库函数。
GNU C 函数库是一种类似于第三方插件的东西。
由于 Linux 是用 C 语言写的,所以 Linux 的一些操作是用 C 语言实现的,
因此,GUN 组织开发了一个 C 语言的库 以便让我们更好的利用 C 语言开发基于 Linux 操作系统的程序。
不过现在的不同的 Linux 的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了。
libc, glibc在一个层次,都是C的标准实现库,是操作系统级别的基石之一。
glib是用C写的一些utilities,即C的工具库,和libc/glibc没有关系。
libc、glibc和glib的关系:
https://blog.csdn.net/yasi_xi/article/details/9899599
========================================================
内容总结
以上是互联网集市为您收集整理的Linux系统编程1_C标准函数库和Linux系统调用全部内容,希望文章能够帮你解决Linux系统编程1_C标准函数库和Linux系统调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。