如何在 C 中设置环境变量并启动进程?

发布于 2024-09-16 15:10:17 字数 73 浏览 9 评论 0原文

如何在 ANSI C for Windows 中设置环境变量并启动进程?如果可能的话,我想避免为此使用任何 Windows API。

How to set an environment variable and start a process in ANSI C for Windows? If possible I want to avoid using any Windows API for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

赴月观长安 2024-09-23 15:10:17

在纯 ANSI C 中,这是不可能的。既没有函数 setenv 也没有 putenv,甚至没有 execv* 函数系列丢失。

相反,我建议您按照自己想要的方式编写一个小接口(可能类似于 execve)并且与系统相关。这样,当您将程序移植到非 Windows 环境时,您可以轻松更改包装器。

In pure ANSI C, it is not possible. There is neither of the functions setenv nor putenv, and even the execv* family of functions is missing.

Instead, I suggest that you write a little interface in the way you want (which possibly looks like execve) and is system-dependent. That way, you can change the wrapper easily when you port your program to a non-Windows environment.

∞觅青森が 2024-09-23 15:10:17

假设可移植性是您指定 ANSI C 的原因,您可以使用 POSIX 函数 _execve 完全执行您想要的操作:

这是一个可移植函数,可生成新的子进程并允许您提供一系列环境设置。

Assuming portability is your reason for specifying ANSI C, you can do exactly what you want with the POSIX function _execve:

This is a portable function that spawns a new child process and allows you to supply an array of environment settings.

仲春光 2024-09-23 15:10:17

您可以使用 WInAPI 中的 CreateProcess 函数来启动一个新的过程

You can use CreateProcess function from WInAPI to start a new process

天涯沦落人 2024-09-23 15:10:17

要使用 Win32 API 启动进程,请使用 CreateProcess 函数如 kayrick 所述。

要设置环境,您可以使用 SetEnvironmentVariable
这些都是 Win32 API。

您可能还想查看 GetEnvironmentVariable。

希望这有帮助。

To launch a process using Win32 API use the CreateProcess function as stated by kayrick.

To set an enviorment you can use SetEnvironmentVariable.
These are both Win32 API.

You may also want to have a look at GetEnvironmentVariable.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文