是否可以在C程序中调用一个单独的C程序(.exe文件),比如如果它是一个函数?
我希望能够将任何类型的参数(如任何其他函数)传递给这个单独的程序,并获得返回值(因此它可以在主机程序中使用)。
我认为参数可以使用int argc, char *argv[]传递,但我不知道是否可以传递整数、数组、指向结构的指针等等。
另一方面,我看到主函数的返回值是特定于系统的。由于我使用Windows,这个返回值(类型、大小等)有什么限制吗?它能作为任何正常函数中的返回值吗?
谢谢!
发布于 2020-06-30 01:33:59
您所描述的,是Unix操作系统的基本前提。Unix的设计允许通过链接多个命令来完成非常复杂的任务,将命令的(文本)输出作为下一个命令的输入(这在当时是革命性的)。
正如klutt已经建议的那样,您可以使用一个可执行文件来完成同样的任务。在他的列表中,我会添加学习如何将程序的输入/输出重定向到文件句柄。
Windows PowerShell将此概念扩展为允许将不同的数据类型 (而不是文本)传递给一些称为cmdlets的特殊可执行文件,但是,要编写自己的可执行文件,需要.Net框架或.Net核心基础结构的支持,因此必须使用托管语言(如C#或C++/CLI )。
要记住,生成整个过程是一项非常昂贵的操作(与调用链接函数相比),因此需要注意一些重要的开销.。
https://stackoverflow.com/questions/62648223
复制相似问题