首页 >后端开发 >C++ >如何可靠地执行 C 语言的外部程序?

如何可靠地执行 C 语言的外部程序?

DDD
DDD原创
2024-10-29 00:47:02180浏览

How Can I Reliably Execute External Programs in C  ?

从 C 程序中打开可执行文件

您有时可能会发现自己需要从自己的 C 应用程序中执行外部程序。虽然使用 system() 似乎是一种简单的方法,但它会带来一定的风险和限制。本文探讨了使用 CreateProcess() 函数的更可靠方法。

创建新进程

CreateProcess() 函数允许您启动一个新进程并拥有它独立于您的调用应用程序运行。这是一个示例实现:

<code class="cpp">#include <windows.h>

VOID startup(LPCTSTR lpApplicationName)
{
   STARTUPINFO si;     
   PROCESS_INFORMATION pi;

   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   ZeroMemory( &pi, sizeof(pi) );

   CreateProcess( lpApplicationName,   
    argv[1],        
    NULL,           
    NULL,           
    FALSE,          
    0,              
    NULL,           
    NULL,           
    &si,            
    &pi             
    );

   CloseHandle( pi.hProcess );
   CloseHandle( pi.hThread );
}</code>

此函数将可执行文件的路径作为参数并为其创建一个新进程。然后该进程独立运行。

有效地使用 CreateProcess()

在示例代码中,argv[1] 参数应包含您的可执行文件的完整路径想要启动。例如,要执行与您自己的应用程序位于同一目录中的“OpenFile.exe”:

<code class="cpp">startup( "OpenFile.exe" );</code>

避免错误

您在使用系统时遇到的错误() 最有可能是由于未指定可执行文件的完整路径而导致的。 CreateProcess() 需要目标程序的绝对路径才能正确运行。

结论

使用 CreateProcess() 是从内部打开可执行文件的更安全可靠的方法一个 C 应用程序。它允许您控制执行环境并避免潜在的安全问题。

以上是如何可靠地执行 C 语言的外部程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn