gpt4 book ai didi

c++ - NaCl 和共享内存

转载 作者:太空狗 更新时间:2023-10-29 12:01:34 36 4
gpt4 key购买 nike

我有一个在 linux 共享内存 (/dev/shm/datahere) 中写入一些日期的应用程序。我需要使用谷歌本地客户端在浏览器中显示这些数据。是真的?我该怎么做?

最佳答案

我不得不在网上挖漂亮,但我找到了一个解决方案:刚出浏览器因为沙箱无法访问,但是有一个Chrome Apps,借助NaCl可以访问文件系统。

要构建 NaCl 附带的 Chrome 应用程序并访问文件系统,请执行以下操作:

  1. 下载nacl_sdk。更新它,获取示例 (pepperX)

  2. 在文件 nacl_sdk/pepper_46/tools/common.mk 中找到一行 SANDBOX_ARGS: = --no-sandbox 并更改为:

SANDBOX_ARGS: = --no-sandbox --allow-no-sandbox-job --nacl-dangerous-no-sandbox-nonsfinacl

CHROME_ENV ?=,到:

CHROME_ENV=NACL_DANGEROUS_ENABLE_FILE_ACCESS=1

2.1 如果使用run_package,则需要在common.mk文件中写入:

run_package: check_for_chrome all @echo "$(TOOLCHAIN) $(CONFIG)" > $(CURDIR)/run_package_config Exec=env NACL_DANGEROUS_ENABLE_FILE_ACCESS=1 "$(CHROME_PATH)" --load-and-launch-app=$(CURDIR) $(CHROME_ARGS)

  1. 在项目的Makefile中需要添加:
LIBS = ppapi_cpp ppapi pthread nacl_io
DEPS = nacl_io
CFLAGS = -Wall
SOURCES = <filename> .cc

# Build rules generated by macros from common.mk:
$ (foreach dep, $ (DEPS), $ (eval $ (call DEPEND_RULE, $ (dep))))
$ (foreach src, $ (SOURCES), $ (eval $ (call COMPILE_RULE, $ (src), $ (CFLAGS))))

# The PNaCl workflow uses both an unstripped and finalized / stripped binary.
  1. 代码示例。这非常重要 - 不要读/dev/shm 读/var/run/shm:
int file;
file = open("/var/run/shm/helloworld.txt", O_RDONLY);
char buffer[1024];
memset(&buffer, 0, 1024);
read(file, buffer, 13);
pp::Var var_reply(buffer);
PostMessage(var_reply);

附言也许这不是一个好的解决方案,但它对我有用

关于c++ - NaCl 和共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934227/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com