微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C API 确保用户资源保持分配的实用方法?

如何解决C API 确保用户资源保持分配的实用方法?

我正在实现一种编程语言。我想为该语言的一些核心工具(标记器、解析器、AST 节点、类型推断、代码生成、许多检查器等)提供一个公共 API:其他开发人员可以用来编译/处理/分析/生成的 C 库使用我的编程语言编写程序。

这个库的用户应该向它传递一个源程序(一个 char* 指向一个包含程序的以空字符结尾的字符串),当我的库的任何组件被使用时,它必须保持分配状态。

我认为要求用户保留自己分配的字符串是一种糟糕的设计。我也不喜欢创建源程序副本的想法:它可能是一个大字符串,而且大多数情况下没有必要复制它。我相信最好的解决方案是让我的图书馆拥有字符串的所有权。

然而,字符串可以是静态字符串,或者由 malloc 分配,或者由 mmap 分配,甚至其他东西。那么我的图书馆应该如何在清理期间处理它?

C API 执行此操作的实用方法是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。