我在用 C++ 和 python 编写的程序之间传递数据。
我发现最简单的方法之一是编译一个 C++ 程序,然后在 python 中使用调用它subprocess.call('cprog.exe arg1 arg2', shell=True)
,并通过参数传输数据arg1, arg2.... etc
这避免了使用 Cython、boost ... 等......我发现在 Windows 上工作是一个巨大的痛苦。特别是在未连接到互联网的老化服务器上。(请不要回复这篇试图帮助 cython 或 boost 等的帖子 - 我想将讨论限制在主要问题上。)
我的问题是:这种方法的局限性是什么?
我可以序列化/编码/解码整个数据数组并以这种方式通过命令行参数传递它们吗?几 GB 大小的文件呢?
这会比写入硬盘驱动器然后从硬盘驱动器读取更快吗?
编辑:这似乎是相关的:Maximum Length of Command Line String
main 的签名是
int main(int argc, const char** argv)
因此,您受到 argv 大小的限制,并且不能保证能够传递超过 32767 个参数。根据您的操作系统和机器,您之前可能会遇到其他限制,但这是该语言内置的限制。
请注意,对于任何给定的编译器,可能具有更大的 int 大小,并且可能能够支持更多数量的参数,但标准不保证这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句