gpt4 book ai didi

python - 我可以通过命令行参数将多少数据传递给 C++ 程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:09:10 30 4
gpt4 key购买 nike

我在用 C++ 和 Python 编写的程序之间传递数据。

我发现最简单的方法之一是编译 C++ 程序,然后使用 subprocess.call('cprog.exe arg1 arg2', shell=True),并通过参数 arg1, arg2.... etc

传输数据

这避免了使用 Cython、boost……等……我发现在 Windows 上工作是一个巨大的痛苦。特别是在未连接到互联网的老化服务器上​​。 (请不要回复这篇试图帮助 cython 或 boost 等的帖子 - 我想将讨论限制在主要问题上。)

我的问题是:这种方法的局限性是什么?

我能否序列化/编码/解码整个数据数组并以这种方式通过命令行参数传递它们?几千兆字节的文件呢?

这会比先写入硬盘驱动器再读取更快的方法吗?


编辑:这似乎是相关的: Maximum Length of Command Line String

最佳答案

不是一个完整的答案(我不能对任何硬性限制发表评论),但请记住,您在命令行上传递的任何数据都必须内存,而且据我所知知道在该过程期间无法释放此内存...因此这不是共享千兆字节数据的实用方法。

当您使用 shell=True 时,您构建的命令将由 shell 解释,这可能(将)对接受的参数数量施加自己的一组限制,并且争论可能有多大。它还可能对参数总共消耗多少内存施加限制。说明您的操作系统/外壳可能很有趣,这样其他人可能会介入 - 由于您的标签,我怀疑是 Windows 和 cmd.exe,但不能确定!


这通常是个坏主意,而且(尽管这不是您问题的答案),您应该认真考虑使用管道进行进程间通信 (IPC)。这将消除您的编码/解码开销、对大小限制的任何担忧以及对将数据写入磁盘的任何担忧。

关于python - 我可以通过命令行参数将多少数据传递给 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544773/

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