用C语言写应用,有什么好的工具和框架?

发布于 2022-09-12 00:18:55 字数 529 浏览 33 评论 0

因为是做通信开发,所以用C比较多,公司的项目很多对linux自带接口的封装,比如互斥、读写锁,线程分配,线程间通信都是封装好的,定时器也是封装好的。我用起来是方便,都是形象化的操作,简单安全。
但是让我独立承担一个新项目,让我从0写代码,脱离了这些封装,就举步维艰。

举个例子来说,进程间消息传递:
现在的项目封装好了mailbox架构
发送端:len=mailBoxSend(接收方ID,自己的ID,发送内容的指针)
接收端:len=mailBoxGet(自己的ID,接收内容的指针)
根据len的值判断发送成功,接收到mail等操作
用宏把进程的ID封装成进程名字以后,整个动作就像寄快递一样易懂
底层其实是FIFO,但是很明显上述这种方式使用清晰,安全,多人开发也更统一。

请问下各位大佬:
1、C语言的老手,是不是都保存、熟悉一些好用的系统封装框架(私有的或开源的均有)?这样从0开新项目的时候,整个框架很快搭建起来,很快就能进入业务逻辑编写阶段,而不是从头开始砌砖搭建架构。
2、是否有一些优秀的,开源的C语言框架?如果有的话请大神赐教,非常感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尾戒 2022-09-19 00:18:55

看项目吧,比如涉及到你说的多进程间通信,根据不同的需求,我可能会手写不同的架构:

  1. 进程间交换的数据大,就封装几个共享内存的接口(get/set)
  2. 消息数据交换,如果是不同机器,肯定得走tcp/udp。基于libevent封装一个消息通信lib.
  3. 如果存在消息订阅,比如多对多场景,就写个center_srv,客户端跟它保持长链接,center srv负责转发消息。

你说的那个fifo(有名管道),我猜测管道名和ID是对应的,不然发送方怎么知道接收方的ID?本质上是某种约定。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文