请选择时期:
怀孕准备 怀孕 分娩 宝宝0-1岁 宝宝1-3岁 宝宝3-6岁

c函数定义的格式(c函数定义的格式老)

来源: 最后更新:23-01-31 12:11:04

导读:glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。SX6宝宝百科网

newlib c库是一个开源的c函数库,包括libc和libm两部分。它支持ANSI C库标准,针对不同处理器架构进行优化,轻量级,适用于嵌入式系统。SX6宝宝百科网

一. GLIBCSX6宝宝百科网

glibc是一种按照LGPL许可协议发布的C函数库,是程序运行时使用到的一些API集合,它们一般是已预先编译好,以二进制代码形式存在于Linux类系统中,glibc通常作为GNU C编译程序的一个部分发布。 它最初是自由软件基金会为其GNU操作系统所写,但目前最主要的应用是配合Linux内核,成为GNU/Linux操作系统一个重要的组成部分。SX6宝宝百科网

在通用的PC和Server中,Linux(ubuntu, Redhat, CentOS etc.)默认提供对glibc的支持;但是在嵌入式应用中,考虑到系统对os大小的要求和简化系统的复杂度等因素,并不一定支持glibc,而是支持uClibc、newLib等针对嵌入式应用的C函数库。这就要求在嵌入式系统开发的过程中,需要评估应用对glibc的依赖程度,评估程序开发或移植的工作量和复杂度。SX6宝宝百科网

glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现,关于glibc功能的介绍可以在其官方网站上获取到详细的手册资料(
http://www.gnu.org/software/libc/manual/)。SX6宝宝百科网

主要的功能如下(摘自glibc手册):SX6宝宝百科网

(1)Error Reporting,进行错误类型的检测和报告(how errors detected by the library are reported)SX6宝宝百科网

(2)Language Features, support for standard parts of the C language, including things like the sizeof operator and the symbolic constant NULL, how to write functions accepting variable numbers of arguments, and constants describing the ranges and other properties of the numerical types. There is also a simple debugging mechanism which allows you to put assertions in your code, and have diagnostic messages printed if the tests fail.SX6宝宝百科网

(3)Memory, 动态内存的分配和管理 (describes the GNU library’s facilities for managing and using virtual and real memory, including dynamic allocation of virtual memory. If you do not know in advance how much memory your program needs, you can allocate it dynamically instead, and manipulate it via pointers.)SX6宝宝百科网

(4) 字符、字符串及数组的处理 Character Handling is about character classification functions (such as isspace) and functions for performing case conversion. String and Array Utilities, include functions for manipulating strings (null-terminated character arrays) and general byte arrays, including operations such as copying and comparison.SX6宝宝百科网

(5)标准IO的支持SX6宝宝百科网

(6)文件操作的支持(File System Interface, such as functions for deleting and renaming them and for creating new directories. also contains information about how you can access the attributes of a file, such as its owner and file protection modes. )SX6宝宝百科网

(7)进程间通讯的支持(Pipes and FIFOs, Pipes allow communication between two related processes (such as between a parent and child), while FIFOs allow communication between processes sharing a common file system on the same machine. )SX6宝宝百科网

(8)网络的支持(socket)SX6宝宝百科网

(9) 虚拟终端设备的管理,及系统的安全访问(Low-Level Terminal Interface, change the attributes of a terminal device. disable echo of characters typed by the user, for example, read this chapter. )SX6宝宝百科网

(10)数学及运算库的支持(定点运算和浮点库)SX6宝宝百科网

(11)查找和分类的支持(Searching and Sorting)SX6宝宝百科网

(12)模式匹配的支持(Pattern Matching)SX6宝宝百科网

(13)时间及定时器的管理SX6宝宝百科网

(14)不同字符集的编码转换SX6宝宝百科网

(15)国际化的支持,选择不同的语言种类和国家SX6宝宝百科网

(16)Non-Local Exits (provide a facility for goto-like jumps which can jump from one function to another.)SX6宝宝百科网

(17)信号量的支持(Signal Handling, establish a handler that is called when a particular kind of signal is delivered, and how to prevent signals from arriving during critical sections of your program.)SX6宝宝百科网

(18)进程编程和进程控制(process and Job control)SX6宝宝百科网

(19)用户管理和系统管理(User Database and System Management) 等SX6宝宝百科网

二. uClibcSX6宝宝百科网

uClibc 是一个面向嵌入式Linux系统的小型的C标准库。最初uClibc是为了支持uClinux而开发,这是一个不需要内存管理单元的Linux版本,因此适合于微控制器系统(uCs;此处”u”是代表”micro”的μ的罗马化).[2]SX6宝宝百科网

uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多,glibc目标是要支持最大范围的硬件和内核平台的所有C标准,而uClibc专注于嵌入式Linux.很多功能可以根据空间需求进行取舍。SX6宝宝百科网

uClibc运行于标准的以及无MMU的Linux系统上,支持tile, i386,x86 64,ARM (big/little endian), AVR32,Blackfin,h8300,m68k,MIPS (big/little endian), PowerPC,SuperH (big/little endian), SPARC,和v850等处理器。SX6宝宝百科网

uClibc和Glibc并不相同,两者有许多不同之处,而且以下不同有可能给你带来一些问题.SX6宝宝百科网

1.uClibc比Glibc小,虽然uClibc和Glibc在已有的接口上是兼容的,而且采用uClibc编译应用程序比采用Glibc编译应用程序要更方便,但是uClibc并没有包括Glibc中的所有接口实现,因此有些应用可能在uClibc中不能编译。SX6宝宝百科网

2.uClibc在可配置性上比Glibc要好。SX6宝宝百科网

3.uClibc并不能保证发布的库二进制兼容旧版本uClibc库。当一个新的版本uClibc库被发布,则可能需要也可能不需要重新编译应用程序。SX6宝宝百科网

4.uClibc没有提供用于数据接口的库(libdb)。SX6宝宝百科网

5.uClibc不支持NSS(/lib/libnss_*),在这方面Glibc更容易支持不同方式的认证和DNS解析。uClibc仅仅支持采用flat口令文件或者shadow口令文件存储授权信息。如果需要比这些更复杂的的授权,可以编译安装pam。SX6宝宝百科网

6.uClibc中的libresolv库仅仅是一个桩。Glibc的libresolv库中的部分并不是全部的功能uClibc都提供,许多函数都没有实现。SX6宝宝百科网

7.提供网络信息服务支持(NIS)libnsl库(最初被称为黄页YP),被SUN扩展为发明为RPC并用于网络共享Unix口令文件SX6宝宝百科网

。个人认为NIS是一个令人厌恶的东西并应该使用。因此,在实现相同的功能情况下采用ldap比NIS更有效。uClibc虽然提供一个桩libnsl,但并不支持NIS。我们因此也不提供在Glibc下提供的位于/usr/include/rpcsvc里的头文件。SX6宝宝百科网

8.uClibc的区域支持并不是100%的完全。正在这方面努力SX6宝宝百科网

9.uClibc的数据功能函数库内部仅仅支持long double,设置对于long double的支持也是非常有限。与此对应的只实现了较少的数学函数。如果应用程序采用double类型,则会程序会运行得较好。SX6宝宝百科网

10.uClibc的libcrpt库不支持可重入crypt_r,setkey_r和encrypt_r,因为这些也不是SuSv3所规定的。SX6宝宝百科网

11.uClibc直接采用内核的数据类型去定义大多数透明的数据类型。SX6宝宝百科网

12.uClibc支持采用linux内核结构特有的结构体”struct stat”。SX6宝宝百科网

13.uClibc的运行时库librt当前缺少aio接口、全部的时钟接口和共享内存接口(仅仅实现定时器接口和消息队列接口)SX6宝宝百科网

三. newlibSX6宝宝百科网

Newlib是一个面向嵌入式系统的C运行库。最初是由Cygnus Solutions收集组装的一个源代码集合,取名为newlib,现在由Red Hat维护。SX6宝宝百科网

对于与GNU兼容的嵌入式C运行库,Newlib并不是唯一的选择,但是newlib是比较优秀和成熟度比较高的一个。newlib具有独特的体系结构,使得它能够非常好地满足深度嵌入式系统的要求。newlib可移植性强,具有可重入特性、功能完备等特点,已广泛应用于各种嵌入式系统中。SX6宝宝百科网

newlib 是一个用于嵌入式系统的开放源代码的C语言程序库,由libc和libm两个库组成,特点是轻量级,速度快,可移植到很多CPU结构上。newlib实现了许多复杂的功能,包括字符串支持,浮点运算,内存分配(如malloc)和I/O流函数(printf,fprinf()等)。其中libc提供了c 语言库的实现,而libm提供了浮点运算支持。SX6宝宝百科网

在使用gcc编译器时,对gcc指定不同的配置选项时,使用的C语言库就不同,默认情况是下使用glibc,可以通过–with-newlib选择使用newlib.SX6宝宝百科网

以上就是本站»c函数定义的格式(初中函数入门基础知识)的相关内容了,更多精彩请关注作者:万年知识SX6宝宝百科网

声明:本文由本站【创业者资源平台】作者编辑发布,更多技术关注万年技术!SX6宝宝百科网

SX6宝宝百科网

标签: [db:关键词]  

免责声明:本文系转载,版权归原作者所有;旨在传递信息,其原创性以及文中陈述文字和内容未经本站证实。

本文地址:http://www.bbbaike.com/news/jiaodian/357768.html

  • 1她41岁当上副县长,却甘愿被商人围猎!中纪委最新披露……

    她41岁当上副县长,却甘愿被商人围猎!中纪委最新披露……

  • 22023年5月16日浙江省成品油价格按机制下调

    2023年5月16日浙江省成品油价格按机制下调

  • 3常州-10号柴油多少钱一升?(常州柴油价今日价格)

    常州-10号柴油多少钱一升?(常州柴油价今日价格)

  • 4银行卡忘记密码了怎么办 银行卡忘记密码了怎么办手机上

    银行卡忘记密码了怎么办 银行卡忘记密码了怎么办手机上

  • 5南阳卧龙区妇幼保健院九价疫苗开放预约

    南阳卧龙区妇幼保健院九价疫苗开放预约

  • 6户口迁城市的好处 户口迁城市有什么好处

    户口迁城市的好处 户口迁城市有什么好处

  • 7南阳卧龙区妇幼保健院520九价到苗消息

    南阳卧龙区妇幼保健院520九价到苗消息

  • 8征信记录怎么查看 征信记录怎么查看个人信息

    征信记录怎么查看 征信记录怎么查看个人信息

  • 9南阳卧龙区妇幼保健院二价疫苗开放预约

    南阳卧龙区妇幼保健院二价疫苗开放预约

  • 10洛阳毕业生团组织关系转接指南(洛阳市团组织关系转接)

    洛阳毕业生团组织关系转接指南(洛阳市团组织关系转接)

关于我们 | 广告服务 | 网站合作 | 免责声明 | 联系我们| 网站地图

© 2006-2022 宝宝百科网 all rights reserved.

声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 联系邮箱:kefu#bbbaike.com (请把#替换成@)