Linux下想运行一个脚本程序,将另一个路径下已知文件名的文件拷贝到该脚本程序当前的路径下,当前程序只能通过输入地址,或者在脚本程序当前目录下搜索。现在的问题是怎么在根目录下搜索这个文件?

Linux下想运行一个脚本程序,将另一个路径下已知文件名的文件拷贝到该脚本程序当前的路径下,当前程序只能通过输入目录,或者在脚本程序当前目录下搜索。现在的问题是怎么在根目录下搜索这个文件?
int main(void){
        int ch;
        FILE *sfp;
        FILE *dfp;
        
        char *src1_path="/home/tzg/src1/exp1.txt";     //输入要拷贝的文件的目录及文件名的方式
        char *src2_path="/home/tzg/src2/c-day1.md";

        char dname1[FILENAME_MAX]={"exp1-cp.c"};
        char dname2[FILENAME_MAX]={"c-day1-cp.md"};
        
        if((sfp = fopen(src1_path, "r")) == NULL){
                printf("\a文件打开失败。\n");
        } else {
                if ((dfp = fopen(dname1, "w")) == NULL){
                        printf("\a文件打开失败。\n");
                }else {
                        while ((ch = fgetc(sfp)) != EOF){
                                fputc(ch, dfp);
                        }
                        fclose(dfp);
                }
                fclose(sfp);
        }

        
        if((sfp = fopen(src2_path, "r")) == NULL){
                printf("\a文件打开失败。\n");
        } else {
                if ((dfp = fopen(dname2, "w")) == NULL){
                        printf("\a文件打开失败。\n");
                }else {
while ((ch = fgetc(sfp)) != EOF){
                                fputc(ch, dfp);
                        }
                        fclose(dfp);
                }
                fclose(sfp);
        }

        return 0;
}
//****************************只能在该路径下查找
int main(){
    const char *file_name = "exp1.c";
    char abs_path_buff[PATH_MAX];

    //char *abs_path_buff[PATH_MAX]="./home/tzg/";


    if(realpath(file_name, abs_path_buff)){
        printf("%s %s\n", file_name, abs_path_buff);
           }
    else{
        printf("the file '%s' is not exist\n", file_name);
    }

    return 0;
}

这样只能通过一步步输入目标文件的目录才可以,那还不如直接复制粘贴拷贝文件呢?
所以想要在根目录下搜索这个文件名,然后拷贝;或者在这个现有程序的基础上,能先搜索得出这个文件的目录。
实战入门,不知道怎样从根目录下搜索这个已知文件名的文件,或者得出这个文件的目录。

下面的连接中有一段代码,用来搜索指定目录下的所有文件及其子目录下的文件,稍微修改一下即可

img