gpt4 book ai didi

c - 在 C 的 OSX 上传递相对路径

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:06 25 4
gpt4 key购买 nike

我正在尝试制作一个程序,该程序在我的 Mac 上的文件夹中运行可执行文件。考虑到我的程序是在与源代码 (/Users/Marcello/Documents/C/Test/Test/Test.c) 相同的文件夹中编译的,该程序看起来像这样:

int main(int argc, const char * argv[]) 
{

printf("Hello, world!\n");

if(execl("/Users/Marcello/Documents/C/Test/Test/HelloWorld", "HelloWorld", NULL))
printf("ERROR\n");

return 0;
}

如果我给出绝对路径一切正常,但是当我尝试将相对路径传递给文件夹时它就不再起作用了(传递 "HelloWorld" 而不是 "/Users/Marcello/Documents/C/Test/Test/HelloWorld").

我注意到发生这种情况是因为在没有其他指示的情况下,程序将尝试在 shell 的文件夹而不是项目的文件夹中搜索 HelloWorldfopen() 等函数也会发生这种情况,因此我尝试考虑解决方案;问题是,我想把这段代码放到一个程序中,每个人都可以在任何他们喜欢的地方下载和安装,我也希望它是跨平台的,但是我找到的所有解决方案,比如 chdir( ),以某种方式引用程序的绝对路径,我不应该事先知道。

谁能帮我找到一个长期的解决方案?

最佳答案

argv 的第一个元素包含程序的相对路径。

关于c - 在 C 的 OSX 上传递相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34940313/

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