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