我正在开发一个 C 程序,它必须调用一个Java
main()
throughpopen()
并将一些数据作为命令行参数发送给它。但是,还有更多数据需要发送到Java
这些数据,这些数据C
在本质上有些敏感(但不是密码类型)。
我正在尝试查看除了加密之外是否还有其他选项可以将这些额外数据从 C 发送到 Java。我试图避免开销,因为数据并不像加密那么敏感,但我对这方面的任何建议持开放态度。
我无法通过 popen() 发送这些额外数据,因为它将通过ps -f
.
同样,使用套接字似乎也不可行,因为tcpdump
它也会泄露这些信息。
我考虑使用共享mem (/dev/shm)
,但也可以查看或使用隐藏文件。因为,这也带来了为每次调用创建文件的开销,我并不完全赞成。
我查看了ANON
文件映射,但我想,我不能在 Java 端使用它。同样,fmemopen()
似乎无法通过 Java 使用引用。管道会FIFO
是更好的选择吗?或者它们也可以轻松阅读?
如果我只是诉诸普通mmap()
并向它写入数据(不在磁盘上创建它 - 在公开调用中没有 O_CREAT),并且不执行msynch
它会完全保留在内存中吗?然后我可以从中读取Java吗?
加密是我唯一的选择还是我缺少一些基本的东西?
此链接讨论从 C 向 Java 发送纯数据。