前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式Linux:Linux库函数

嵌入式Linux:Linux库函数

作者头像
不脱发的程序猿
发布2024-05-26 10:30:16
1550
发布2024-05-26 10:30:16
举报
文章被收录于专栏:AIoT技术交流、分享

1、Linux库函数简介

Linux 提供了丰富的库函数,涵盖了各种领域,从文件操作到网络编程、图形界面、数学运算等。这些库函数大多数都是标准的 C 库函数,同时也包括一些特定于 Linux 系统的库。

Linux库函数通常以动态库文件(.so)的形式提供,存放在根文件系统的 /lib 目录下。

Linux库函数构建于系统调用之上,尽管有些库函数并不调用系统调用。例如,一些字符串处理函数(strlen()、strcat()、memcpy()、memset()、strchr() 等)。

但是,其他库函数可能会使用系统调用来完成实际的操作,例如 fopen 内部调用了系统调用 open() 来打开文件,fread() 利用了系统调用 read() 来读取文件,fwrite() 则使用了系统调用 write() 来写文件。

Linux 内核提供了一系列系统调用供应用层使用,直接使用系统调用是一种方法。然而,有些系统调用使用起来不够方便,因此引入了 C 语言库。这些库函数的设计旨在提供比底层系统调用更方便、更易用、更具可移植性的调用接口。它们之间的区别如下:

  • 库函数属于应用层,而系统调用是内核提供给应用层的编程接口,属于系统内核的一部分。
  • 库函数运行在用户空间,而调用系统调用会导致从用户空间(用户态)陷入到内核空间(内核态)。
  • 库函数通常具有缓存,而系统调用是无缓存的,因此在性能和效率上,库函数通常优于系统调用。
  • 可移植性方面,库函数相对于系统调用具有更好的可移植性。由于不同操作系统的系统调用定义、功能、参数列表、返回值等通常不同,C 语言库函数在不同操作系统之间的接口定义几乎相同,因此具有更好的可移植性。

尽管从实现者的角度来看,系统调用与库函数存在根本的区别,但从用户使用的角度来看,这些区别并不重要。对于应用编程者来说,它们都是 C 语言函数。在实际应用编程中,库函数和系统调用都会被使用。因此,从用户的角度来看,将它们视为 C 函数即可,无需过分区分它们之间的差异。

2、标准C语言库函数

在Linux系统下,使用的C语言库主要是GNU C语言函数库,也被称为glibc。它是Linux下的标准C语言函数库,为开发者提供了丰富的函数集,涵盖了输入输出、字符串处理、数学运算、文件操作等多个领域。

网站:https://sourceware.org/glibc/

glibc 源码的获取方式很简单,直接直接从 git 仓库下载,也可以通过 ftp 下载:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Linux库函数简介
  • 2、标准C语言库函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档