gpt4 book ai didi

c - 如何找到文件的完全限定路径名?

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:40 26 4
gpt4 key购买 nike

在 Windows 上,您可以转到“运行”,输入“cmd”,按回车键,然后很容易地启动“C:\Windows\system32\cmd.exe”。 “python”或“pythonw”也是如此(尽管在第二个示例中没有弹出任何内容)。如果您只知道要执行“python”或“pythonw”并且它在 PATH 上,那么在 C 中找出可执行文件的完全限定路径名的最简单方法是什么? This question似乎与问题高度相关但没有在C中给出最终解决方案。 _execp允许使用字符串“python”或“pythonw”,但需要函数的 argv 参数的第一个参数的限定路径。

最佳答案

使用getenv()获取路径,将其分割成字符串(在Windows下用分号),然后依次测试每个目录下是否有指定名称的可执行文件。

#include <iostream>
#include <sstream>
#include <sys/stat.h>

int main(void)
{
std::stringstream path(getenv("PATH"));
while (! path.eof())
{
std::string test;
struct stat info;
getline(path, test, ':');
test.append("/myfile");
if (stat(test.c_str(), &info) == 0)
{
std::cout << "Found " << test << std::endl;
}
}
}

将 myfile 替换为任何内容,在 Windows 上将 ':' 替换为 ';'因为路径分隔符不同。

关于c - 如何找到文件的完全限定路径名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com