首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个C程序中执行一个C程序,就好像它是一个函数调用(在Windows中)?

问从另一个C程序中执行一个C程序,就好像它是一个函数调用(在Windows中)?
EN

Stack Overflow用户
提问于 2020-06-29 23:39:48
回答 1查看 367关注 0票数 0

是否可以在C程序中调用一个单独的C程序(.exe文件),比如如果它是一个函数?

我希望能够将任何类型的参数(如任何其他函数)传递给这个单独的程序,并获得返回值(因此它可以在主机程序中使用)。

我认为参数可以使用int argc, char *argv[]传递,但我不知道是否可以传递整数、数组、指向结构的指针等等。

另一方面,我看到主函数的返回值是特定于系统的。由于我使用Windows,这个返回值(类型、大小等)有什么限制吗?它能作为任何正常函数中的返回值吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-30 01:33:59

您所描述的,是Unix操作系统的基本前提。Unix的设计允许通过链接多个命令来完成非常复杂的任务,将命令的(文本)输出作为下一个命令的输入(这在当时是革命性的)。

正如klutt已经建议的那样,您可以使用一个可执行文件来完成同样的任务。在他的列表中,我会添加学习如何将程序的输入/输出重定向到文件句柄。

Windows PowerShell将此概念扩展为允许将不同的数据类型 (而不是文本)传递给一些称为cmdlets的特殊可执行文件,但是,要编写自己的可执行文件,需要.Net框架或.Net核心基础结构的支持,因此必须使用托管语言(如C#或C++/CLI )。

要记住,生成整个过程是一项非常昂贵的操作(与调用链接函数相比),因此需要注意一些重要的开销.。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62648223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档