鸿蒙5.0&next开发【libc标准库】 标准库

简介

C标准函数库在C语言程序设计中,提供符合标准的头文件,以及常用的库函数实现(如I/O输入输出和字符串控制)。

HarmonyOS采用musl作为C标准库,musl库是一个轻量,快速,简单,免费的开源libc库

标准C库组件介绍

[libc、libm、libdl]组合实现C11标准C库。

libc:包含线程相关接口,以及大部分标准接口。

libm:数学库函数接口,当前在HarmonyOS中是一个链接,实际都在libc中定义。

libdl:dlopen等动态链接器接口,当前在HarmonyOS中是一个链接,实际都在libc中定义。

musl版本号

1.2.0

从HarmonyOS4.0开始,版本升级到1.2.3

从HarmonyOS5.0开始,版本升级到1.2.5

支持的能力

提供兼容C99、C11、POSIX标准的头文件,以及库函数接口,但不是完全兼容;支持armv7a、arm64、x86_64三种架构的支持;

为了更好的适配HarmonyOS设备的高性能、低内存、高安全、轻量化、支持多种形态设备的基本特征;在musl开源库的基础上进行了优化,增强,对不适用嵌入式设备的接口进行了裁剪。

新增能力

  1. 动态加载器支持命名空间隔离能力,应用可以dlopen加载的动态库受系统命名空间限制(比如,无法打开系统侧动态库)。
  2. 支持dlclose真实卸载动态库能力,musl的开源版本不支持。
  3. 支持symbol-versioning功能。
  4. dlopen支持直接加载zip包中未压缩的文件。

调试能力

libc提供了动态使能维测log功能(默认关闭),供开发者需要的时候查看libc库异常。使用libc提供的动态使能维测log功能,不需要重新编译libc库,只需设置param属性即可。在正式发布版本中,不建议使能,会影响运行性能。

1. musl.log功能

设置musl.log.enable属性为true,打开musl维测log打印。打印其他日志,需先打开此开关。

param set musl.log.enable true

2. 加载器log功能

加载器是libc中负责程序引导,dlopen,dlclose等动态链接程序,如需要查看动态加载过程异常,可以打开加载器log。用法如下:

  • 使能全部应用的加载器log,log量比较大,请谨慎使用。
param set musl.log.ld.app true
  • 使能指定应用的加载器log,{app_name}需要替换成真实需要打印log的应用名字。
param set musl.log.ld.all false
param set musl.log.ld.app.{app_name} true
  • 打印全部应用除指定名字应用外的加载器日志。
param set musl.log.ld.all true
param set musl.log.ld.app.{app_name} false

musl 差异规格接口说明

接口名称说明
epoll_create在HarmonyOS5.0 上 该接口逻辑与1.2.3版本保持一致,不会对入参进行判断,不区分入参小于等于0的情况,预计下版本更新此接口逻辑与社区1.2.5保持一致,增加入参逻辑判断,入参小于等于0时创建失败,并返回错误码EINVAL。

ICONV支持的字符集编码格式

musl支持的字符集编码格式,以及受支持的别名。

注意

在进行字符集编码格式转换时,请使用正确的源字符集编码格式,且目标字符集编码格式必须支持这些受转换的字符,否则转换失败。

在musl里不支持将源字符集编码格式转换成这五种目标字符集编码格式:gb18030,gbk,gb2312,big5和euckr。

编码格式别名musl支持情况
utf8支持
wchart支持
ucs2be支持
ucs2le支持
utf16be支持
utf16le支持
ucs4beutf32be支持
ucs4leutf32le支持
asciiusascii, iso646, iso646us支持
utf16支持
ucs4utf32支持
ucs2支持
eucjp支持
shiftjissjis, cp932支持
iso2022jp支持
gb18030支持
gbk支持
gb2312支持
big5bigfive, cp950, big5hkscs支持
euckrksc5601, ksx1001, cp949支持
iso88591latin1支持
iso88592支持
iso88593支持
iso88594支持
iso88595支持
iso88596支持
iso88597支持
iso88598支持
iso88599支持
iso885910支持
iso885911tis620支持
iso885913支持
iso885914支持
iso885915latin9支持
iso885916支持
cp1250windows1250支持
cp1251windows1251支持
cp1252windows1252支持
cp1253windows1253支持
cp1254windows1254支持
cp1255windows1255支持
cp1256windows1256支持
cp1257windows1257支持
cp1258windows1258支持
koi8r支持
koi8u支持
cp437支持
cp850支持
cp866支持
cp1047ibm1047支持

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

在这里插入图片描述

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

在这里插入图片描述

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值