开源项目: 造一系列常用的Linux应用API轮子

开源项目: 造一系列常用的Linux应用API轮子

来源 | 嵌入式应用研究院

整理&排版 | 嵌入式应用研究院

这个项目其实在很早之前就开始了,最初的目的是为它(Future3D)而准备的,因此最近一段时间利用晚上下班的时间以及周末的时间在完成,故很少更文。

这套接口的实现愿景是为了能够更快的搭建一套基于Posix接口的通用物联网3D打印框架而服务的,而这套框架将无差别的兼容全平台,无论是Linux、Win32还是Mcu等等,它都能够顺利运行;因此,我们需要去实现一些通用的轮子,例如文件IO、线程、定时器、消息队列、互斥锁、网络操作等等接口。因此在最初的选择是先基于Linux应用开发,先将常用的、通用的接口进行封装和实现,然后再开始设计业务逻辑和时序,最后调试整个系统。而相对于其它的平台移植起来就容易多了,我们只需要替换掉封装接口以下的Posix API,便能够实现无差别兼容。目前这套Linux应用API轮子分为21个大类,后续还会根据需求继续增加,开源项目地址:

代码语言:javascript代码运行次数:0运行复制https://github.com/Yangyuanxin/Linux_APUE

https://gitee.com/morixinguan/Linux_APUE项目是基于CMake构建,整体的统一编码风格是基于大驼峰。另外,每个小类中的实现都会有一个Test函数,例如目录操作的test函数:

代码语言:javascript代码运行次数:0运行复制#ifdef TEST_OPEN

Void CallBack(S8 *Name)

{

printf("Name: %s\n", Name);

}

S32 DirOperateTest(Void)

{

S32 Counter = 0;

//扫描当前目录下的所有文件并通过CallBack将目录下的所有文件

//打印出来

Counter = ScanListFiles(".", Null, CallBack);

if(Counter < 0)

{

printf("ScanListFiles fail!\n");

return -1;

}

printf("Have't Suffix Counter = %d\n", Counter);

//扫描当前目录下所有的.txt文件并通过CallBack将目录下的所有.txt文件打印出来

Counter = ScanListFiles(".", ".txt", CallBack);

if(Counter < 0)

{

printf("ScanListFiles fail!\n");

return -1;

}

printf("Have Suffix Counter = %d\n", Counter);

printf("DirOperate Test Success!\n");

return 0;

}

#endif

它是用于告诉用户这些接口应该如何去使用以及针对接口的简单测试用例。项目的主入口是main.c,main.c会去调用各个子类下的Test接口函数。

项目构建方法最终会在这个目录下生产a.out可执行程序:

如果需要将其移植到ARM Linux平台上运行,只需要修改CMakeList.txt文件即可,如下所示:

代码语言:javascript代码运行次数:0运行复制#配置交叉编译器,如果默认以GCC编译,则注释

SET(CMAKE_C_COMPILER /home/book/workspace/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc)

SET(CMAKE_CXX_COMPILER /home/book/workspace/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)

添加对应的交叉编译器即可。

参与贡献Fork 本仓库新建 Feat_xxx 分支提交代码新建 Pull Request

相关推荐

越什么越什么造句子(汇总20句)
beat365网址大全

越什么越什么造句子(汇总20句)

📅 07-16 🔥 422
医疗咨询网站TOP10排排榜 线上问诊免费平台 在线寻医问诊→榜中榜
节奏大师延迟数据调节问题-延迟数据的原因
beat365网址大全

节奏大师延迟数据调节问题-延迟数据的原因

📅 08-07 🔥 779
杨幂商务代言汇总 杨幂代言过的产品盘点 杨幂品牌代言有哪些
东风风神AX7的质量评估:性能、可靠性与消费者反馈
抖森首度回应与霉霉分手内幕 原因让人唏嘘(图)