【发布时间】:2026-01-15 09:25:02
【问题描述】:
我有以下后端功能:
// foo.c
void cStart(pid_t* pid)
{
*pid = getpid();
// event-loop keep running until receive SIGINT signal
}
void cStop(pid_t* pid)
{
kill(*pid, SIGINT);
}
// addon.cpp
#include "addon.h"
#include "foo.h"
Napi::Number addon::run_pipeline_wrapped(const Napi::CallbackInfo &info)
{
Napi::Env env = info.Env();
// get the buffer from JS, pass it to cStart to be modified in-place [?]
cStart(pid_t* pid);
}
Napi::Number addon::kill_pipeline_wrapped(const Napi::CallbackInfo &info)
{
Napi::Env env = info.Env();
// get the modified (by cStart) buffer from JS, pass it to cStop [?]
cStop(pid_t* pid);
}
从前端,当点击开始按钮时,一个C进程将开始运行,直到它收到一个SIGINT信号,当点击停止按钮时,SIGINT信号被发送给正在运行的C进程。 int* 将按如下方式运行:JS(单击开始按钮)-> C/C++(cStart 已修改 int*,因此 int* 不会显式返回给 JS)-> JS(单击停止按钮)-> C/C++)。那么如何在 JS 和 C/C++ 之间来回传递一个 int 指针呢?
【问题讨论】:
标签: c++ c node-addon-api