簡體   English   中英

從另一個 C 程序中執行 C 程序,就好像它是一個 function 調用(在 Windows 中)?

[英]Execute a C program from within another C program as if it was a function call (in Windows)?

是否可以在 C 程序中調用單獨的 C 程序(.exe 文件),就像它是 function 一樣?

我希望能夠將任何類型的 arguments (與任何其他函數一樣)傳遞給這個單獨的程序,並獲取返回值(因此它可以在主機程序中使用)。

我想 arguments 可以通過使用int argc, char *argv[]來傳遞,但我不知道是否可以傳遞整數、arrays、指向結構的指針等。

另一方面,我讀到主 function 的返回值是系統特定的。 由於我使用的是 Windows,所以這個返回值(類型、大小等)有什么限制嗎? 它可以是任何可以用作任何正常 function 中的返回值的東西嗎?

謝謝!

你所描述的,是Unix操作系統的基本前提。 Unix 旨在允許通過鏈接多個命令來完成非常復雜的任務,將命令的(文本)output 作為下一個命令的輸入(這在當時是相當革命性的)。

正如klutt已經建議的那樣,您可以使用 Windows 可執行文件來完成相同的操作。 在他的列表中,我將添加學習如何將程序的輸入/輸出重定向到文件句柄

Windows PowerShell 擴展了這個概念,允許將文本以外的不同數據類型傳遞給一些稱為cmdlets的特殊可執行文件,但是,要編寫自己的,您需要來自 .Net Framework 或 .Net Core 基礎架構的支持,因此您必須從諸如 C# 或 C++/CLI 之類的托管語言執行此操作。

請記住,生成整個進程是一項極其昂貴的操作(與簡單地調用鏈接函數相比),因此您需要注意一些重要的開銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM