C 获取文件而无需在unix中指定完整路径

标签 c filepath

我正在尝试在用 C 编写的程序中包含文件的相对路径。目前对于我的程序

createShader(&shader,"/Users/myUsername/Documents/Programming/OpenGL/shaders/shaderFile.glsl");

不可移植。我想要的是我想要的是

createShader(&skyboxShader, "shaders/shaderFile.glsl");. 

shaders目录是我的主程序目录下的一个目录。我的文件结构是

program
    \include
    \src
        -> main.c
        -> main.h
        \shaders
            -> shaderFile.glsl

谢谢。

最佳答案

你的可移植性概念太弱了。在程序中编码绝对路径通常是一个坏主意,但使其相对于源代码似乎同样有缺陷。我建议您采用一个简单的搜索路径算法,该算法首先在当前工作目录中查找,然后可能在用户主目录中的某个虚线子目录(隐藏)中查找,然后按照某些命令行参数或环境的指示多变的。假设有人还没有实现通用搜索路径函数,那么它在您编写的大多数程序中都会很有用。

关于C 获取文件而无需在unix中指定完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299390/

相关文章:

directory - 从 AppleScript 路径中提取文件扩展名

android - 从录制的视频中获取路径

linux - 什么是文件扩展?

c++ - 运行 ShellExecuteEx 后获取线程退出码

c++ - 在同一函数中定义变量及其静态等效项

java - 使用 CURL 将表单数据发布到网页

c++ - 在静态库中硬编码的代码文件和头文件路径?

php include语句无法打开流到当前目录上方目录中的文件

c - 进程中如何动态分配内存变量?

c - C中循环链表的显示函数