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

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

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

640.png

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

https://github.com/Yangyuanxin/Linux_APUE
https://gitee.com/morixinguan/Linux_APUE

640.png

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

#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接口函数。

项目构建方法

640.png

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

640.png

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

#配置交叉编译器,如果默认以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++)

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

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

往期精彩

Linux Posic消息队列和System V消息队列的区别


嵌入式Linux Qt应用开发WIFI搜索、显示与连接思路


嵌入式linux检测U盘拔插与QT界面开发相结合的实现思路


嵌入式Linux MIPI接口LCD调试-关于DRM显示与应用调试的干货浓缩

目录
相关文章
|
15天前
|
搜索推荐 安全 API
京东商品详情的 API 探秘与应用
在数字化商业时代,准确详尽的商品信息至关重要。京东作为国内领先电商平台,提供了丰富的商品资源及强大的API接口,涵盖商品查询、订单管理等方面,助力开发者轻松获取商品详情。本文将详细介绍如何使用京东API获取商品信息,并探讨其在数据分析、比价工具及个性化推荐系统中的应用价值。使用时需注意API调用频率、数据时效性及安全性等问题。
|
1月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
175 13
|
1月前
|
API
|
2月前
|
存储 消息中间件 前端开发
Web2py框架下的神秘力量:如何轻松集成第三方API,让你的应用不再孤单!
【8月更文挑战第31天】在开发现代Web应用时,常需集成第三方服务如支付网关、数据存储等。本文将指导你使用Web2py框架无缝接入第三方API。通过实例演示从注册获取API密钥、创建控制器、发送HTTP请求到处理响应的全过程。利用`requests`库与Web2py的内置功能,轻松实现API交互。文章详细介绍了如何编写RESTful控制器,处理API请求及响应,确保数据安全传输。通过本教程,你将学会如何高效整合第三方服务,拓展应用功能。欢迎留言交流心得与建议。
36 1
|
2月前
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
|
2月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
64 3
|
2月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
49 0
|
2月前
|
JSON API 数据库
探索FastAPI:不仅仅是一个Python Web框架,更是助力开发者高效构建现代化RESTful API服务的神器——从环境搭建到CRUD应用实战全面解析
【8月更文挑战第31天】FastAPI 是一个基于 Python 3.6+ 类型提示标准的现代 Web 框架,以其高性能、易用性和现代化设计而备受青睐。本文通过示例介绍了 FastAPI 的优势及其在构建高效 Web 应用中的强大功能。首先,通过安装 FastAPI 和 Uvicorn 并创建简单的“Hello, World!”应用入门;接着展示了如何处理路径参数和查询参数,并利用类型提示进行数据验证和转换。
41 0
|
2月前
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
2月前
|
数据采集 物联网 数据挖掘
API接口的应用
API接口在现代技术中至关重要,它使不同软件、设备间能相互通信和数据共享。在社交网络中,如Facebook及Twitter的API让开发者能够构建交互式应用;移动应用则依赖API与服务器通信,实现天气查询、地图定位等功能;云计算平台如AWS通过API提供了资源管理和配置服务;物联网设备使用API实现数据交换;视频游戏开发商利用各类平台API发布游戏。此外,API爬虫数据接口技术通过爬虫抽取并输出数据,被广泛应用于获取商业、金融、医疗等领域的大数据,以支持数据分析、策略制定及业务流程优化,极大地提高了数据收集与处理的效率和准确性。
下一篇
无影云桌面