问题标签 [c-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 什么 dbus 性能问题会阻止它进入嵌入式系统?
从我的阅读来看,由于存在守护进程,dbus 性能应该比其他消息传递 ipc 机制慢两倍。
在讨论使用哪种Linux IPC技术的so问题的问题时,有人提到了性能问题。除了两倍慢的因素之外,您还看到性能问题吗?您是否看到阻止 dbus 在嵌入式系统中使用的问题?
据我了解,dbus 是否适用于小消息。如果需要传递大量数据,一种解决方法是把数据放到共享内存或者堆里,然后用dbus通知。根据讨论的其他 ipc 机制是:信号、匿名管道、命名管道或 FIFO、SysV 消息队列、POSIX 消息队列、SysV 共享内存、POSIX 共享内存、SysV 信号量、POSIX 信号量、FUTEX 锁、文件-使用 mmap、UNIX 域套接字、Netlink 套接字、网络套接字、Inotify 机制、FUSE 子系统、D-Bus 子系统的支持和匿名共享内存。
我应该提到另一个列出要求的问题(尽管它以 apache 为中心):
- 面向数据包/消息
- 处理点对点和一对多通信的能力
- 没有层次结构,没有服务器和客户端
- 如果一个端点崩溃,必须通知其他端点
- 现有 Linux 发行版的良好支持
- Apache 存在一个“绑定”,目的是创建动态页面——尽管这太具体了,在一般嵌入式 dbus 使用讨论中可以忽略它
另一个关于性能的问题提到了提高性能的技术。考虑到所有这些,我想在嵌入式系统中使用 dbus 时问题或缺点应该更少。
php - 从 C 生成 PHP 操作码/字节码
假设我想用 C 编写一个小型编译器,它可以从选择的自定义语言 ( typoscript ) 生成 PHP 字节码。我该怎么做?PHP 是否提供 API?或者我需要破解默认 PHP 编译器的部分内容吗?
编辑:在更一般的说明中,我可以用 C 语言编写它并生成 PHP 操作码(因此它可以与其他 PHP 代码兼容),而不是用 PHP 编写解析器吗?
编辑 2:这可以作为 PHP 的扩展来完成,所以我会研究一下。
mysql - C API 用于连接 C & SQL 数据库
我正在尝试使用 C API 将我的 C 代码连接到我的 SQL。我想知道是否有人有任何好的初学者资源,所以我可以加快速度。我要做的只是将数据存储在我用 SQL 制作的表中。如果它有帮助,我正在我的 Mac 上使用 MySQL。谢谢!
c - DBus:使用直接 dbus API 测量数据交换的时间
我正在寻找一个示例 c 代码来测量在不使用任何 glib 绑定的情况下在两个简单应用程序之间发送数据所花费的时间,我在许多帖子中看到http://www.matthew.ath.cx/misc/dbus有一个例子,但链接现在不存在。
我的代码发送没有任何错误,但接收应用程序没有收到任何内容,还附加了 service.conf 文件。从其他一些网站获得此代码:
python - Python C-Api 32 位 PyDict_Check 访问冲突,Win7,Python 2.66
我正在尝试在 VS2010 中将 Python C-Api 用于 32 位项目。
我已经安装了 64 位和 32 位 Python。为了区分这两个版本,我将 32 位 dll 重命名为“python26_32.dll”。我已经使用 VS dumpbin 和 lib 工具创建了一个相应的导入 .lib 文件“python26_32.lib”(参见。https: //adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/)。
我已经调整了“pyconfig.h”并取消了#pragma comment(lib...)
声明的注释。
这些项目可以很好地编译为 32 位。调用时运行 exe 会导致访问冲突PyDict_Check
。其他方法调用之前工作正常(例如Py_Initialize
,,PyRun_SimpleString
... PyDict_New
)
这是我的小例子:
我注意到,“PyDict_Check”不在 dll 的导出中。它在 python 头文件中定义。
我试图调整“路径”(在 Windows 中和通过 api 中(参见示例)),但这没有帮助。
64 位版本工作正常(更改相关的 VC++ 目录和Py_SetPythonHome
Statement.
最让我困惑的是,c-api 的某些部分有效,而其他部分则无效。
刚试过PyDict_CheckExact
,这个行得通。
非常感谢您的帮助。
python - Python 如何为派生自 C 类型的类的对象分配内存?
假设我们在 C_xxx
中创建了一个包含扩展 object的 Python 模块xxx
,我们执行以下操作:
Python如何为d
幕后分配内存?
Eli Bendersky 的文章Python 对象创建序列是我发现的最接近的,但它似乎没有涵盖这种情况。
注意:这里已经有一个答案:我要问作者他是否会考虑将他的答案迁移到这里,因为这是对一个格式不正确的问题的一个很好的答案。即他已经弄清楚我需要问什么问题并回答了。但是其他人很难找到资源,所以我认为最好将其与适当的问题相匹配。
当然欢迎其他答案,但请先检查上面的链接以确保它尚未涵盖!还有对现有答案的任何评论,请您等到它被重新定位(如果作者选择重新定位它)。
python - python 3 C-API 扩展 ImportError
我在 mac OS X 10.10.2 上使用 Python3。我是 python C-API 的新手,所以我正在尝试来自“Python Cookbook” http://chimera.labs.oreilly.com/books/1230000000393/ch15.html的 C-API 扩展的简单示例。我认为 Python2 和 Python3 之间存在一些差异。我遵循了 Python3 文档,但找不到我的案例不起作用的原因。
直到用 distills 构建(python3 setup.py build
或python3 setup.py build_ext --inplace
)给我sample.so
文件。我也编译sample.c
了sample.o
.
但是,当我从 python 导入时,我收到如下所示的错误消息,我不明白发生了什么。下面显示了在 ipython3 中运行的错误消息。
请帮助我解决扩展模块的问题。谢谢!
以下是文件pysample.c
、sample.c
、sample.h
和的代码setup.py
。
pysample.c
样本.c
样本.h
安装程序.py
hard-drive - SMART 有 API 吗?
目前正在开发一个 NAS 系统,我想使用 SMART 来监控 NAS 中硬盘的状态。我已经查看了诸如 smartmontools smartctl 和 smartd 之类的工具,但是我希望更好地控制我告诉 NAS 在发生不同错误时做出反应的内容。smartd 支持运行脚本,但并不可取。在 c 中是否有一个更可取的 api 可以用来与 SMART HDD 通话?
postgresql - 使用 c api 处理 postgresql jsonb
Postgres 扩展开发
我正在使用从 ubuntu 可信赖的主仓库安装的postgres-9.4的 C API。这可能是一个愚蠢的问题,但请耐心等待。
我想使用一个函数将 a 转换cstring
为Jsonb*
定义的结构
http://doxygen.postgresql.org/jsonb_8h.html
已经在
http://doxygen.postgresql.org/jsonb_8c.html
即 function
Datum jsonb_in ( PG_FUNCTION_ARGS )
,但是我不确定是否可以以可移植且安全的方式从 C API 调用此函数。乍一看,它似乎是为了被 postgres 调用。
我也可以使用该功能jsonb_from_cstring
http://doxygen.postgresql.org/jsonb_8c.html#ab23eca28d5880f86a0943d71c90d6654
但它是在 json.h 中声明和定义的,jsonb.c
而不是在 json.h 中声明的,因此与此函数链接不是一个非常干净的解决方案。我尝试在 libpq.so 中找到符号jsonb_from_cstring
,但是没有。我猜我需要一个非标准的 postgres 版本?
所以问题是,从 C API中将 a 转换cstring
为结构的最佳方法是什么?Jsonb*
编辑:
该扩展从外部源获取 json 数据作为字符串,并且应该能够将该字符串存储在一个Jsonb
类型中
c - 使用 C API 需要#include
我正在尝试使用 Tango C API,但在 SDK 中的所有文件中,都有对#include <tango-api/public-api.h>
. 我做了一些研究,但找不到公共探戈 API 或它是什么的地方。SDK不应该包含所有必需的头文件吗?
什么是公共 API,我如何获得它?