Для этого я написал дополнение C++, которое печатает возможности запущенного исполняемого файла. (в данном случае node):
addon.cc
Код: Выделить всё
#include
#include
#include
#include
#include
void print_capabilities(const char *process_name) {
cap_t caps;
char *caps_text;
caps = cap_get_proc();
if (caps == NULL) {
perror("cap_get_proc");
return;
}
caps_text = cap_to_text(caps, NULL);
if (caps_text == NULL) {
perror("cap_to_text");
cap_free(caps);
return;
}
printf("%s capabilities: %s\n", process_name, caps_text);
// Freigeben des Speichers
cap_free(caps_text);
cap_free(caps);
}
Napi::Value ForkAndPrintCapabilities(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
printf("Hallo from main\n");
print_capabilities("Main");
return Napi::String::New(env, "Fork and capabilities printed.");
}
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set(Napi::String::New(env, "forkAndPrintCapabilities"), Napi::Function::New(env, ForkAndPrintCapabilities));
return exports;
}
NODE_API_MODULE(addon, Init)
Код: Выделить всё
const addon = require('./build/Release/addon');
console.log("Exectuable:", process.execPath);
addon.forkAndPrintCapabilities();
Код: Выделить всё
{
"targets": [
{
"target_name": "addon",
"sources": ["addon.cc"],
"include_dirs": [
"
Подробнее здесь: [url]https://stackoverflow.com/questions/78496672/node-js-exectuale-capabilites-are-not-inherited-to-native-addon[/url]