C fopen()搜索路径

C fopen()搜索路径,c,fopen,search-path,C,Fopen,Search Path,有没有一种方法可以设置fopen()的搜索路径,以便在我刚输入文件名时,它可以在这些路径中搜索该文件 f=fopen("xxx","r"); 我只希望xxx不在当前目录中,我不想更改源代码。不,您必须自己编写代码。如果出于任何原因无法更改代码,则可以更改文件系统,例如在Linux上使用符号链接、bindmounts等 您可以根据需要重新定义fopen(但我建议不要这样做);在Linux上,您甚至可以使用肮脏的技巧使其“透明”。不,fopen仅在当前目录中查找,您无法为其提供目录列表。但如果您希

有没有一种方法可以设置fopen()的搜索路径,以便在我刚输入文件名时,它可以在这些路径中搜索该文件

f=fopen("xxx","r");

我只希望xxx不在当前目录中,我不想更改源代码。

不,您必须自己编写代码。如果出于任何原因无法更改代码,则可以更改文件系统,例如在Linux上使用符号链接、
bind
mounts等


您可以根据需要重新定义
fopen
(但我建议不要这样做);在Linux上,您甚至可以使用肮脏的技巧使其“透明”。

不,
fopen
仅在当前目录中查找,您无法为其提供目录列表。但如果您希望它搜索路径列表:

char *paths[] = {
    ".",
    "/etc",
    "/usr/local",
    NULL
};

FILE *fp = NULL;
char path[ENOUGH];

while (!fp && paths[i]) {
    sprintf(path, "%s/%s", paths[i], name);
    fp = fopen(path, "r");

    i++;
}

但是原始海报不想更改他的源代码。@BasileStarynkevitch我认为这是不可能的。