C获取文件而无需在unix

时间:2016-02-09 18:22:55

标签: c filepath

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

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

不便携。我想要的是我想要的是什么

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

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

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