函数

GLibfind_program_in_path

声明 [src]

gchar*
g_find_program_in_path (
  const gchar* program
)

描述 [src]

按照 execvp() 定位其的方式,在用户的路径中定位第一个名为 program 的可执行文件。返回一个已分配的字符串,其中包含绝对路径名,如果路径中未找到该程序,则返回 NULL。如果 program 已是绝对路径,则如果 program 存在并且可执行,则返回 program 的副本,否则返回 NULL

在 Windows 上,如果 program 没有文件类型后缀,则尝试使用后缀 .exe、.cmd、.bat 和 .com,以及 PATHEXT 环境变量中的后缀。

在 Windows 上,它会以与 CreateProcess() 相同的方式查找文件。这意味着首先在从中加载可执行程序的目录中,然后在当前目录中,然后在 Windows 32 位系统目录中,然后在 Windows 目录中,最后在 PATH 环境变量中的目录中。如果找到该程序,则返回值包含包括类型后缀在内的完整名称。

参数

program

类型: const gchar*

GLib 文件名编码中程序的名称。

数据归函数调用者所有。
该值是平台原生字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。

返回值

类型: gchar*

包含绝对路径的新分配的字符串,或 NULL

函数调用者获取数据的所有权,并负责释放数据。
返回值可以是 NULL
该值是平台原生字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。