用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径

用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径,第1张

#include <stdioh>
#include <stdlibh>
#include <stringh>
int main(int argc, char argv[])
{
    char file_name[64] = {0};
    char file_path[128] = {0};
    char dir_path[64] = {0};
    char cmd[256] = {0};
    int  re = 0;
    FILE pf = NULL;
    char p = NULL;
    
    printf("请输入文件名:\n");
    scanf("%s", file_name);
    
    snprintf(cmd, 256, "find -name %s > tmptxt", file_name);//如果文件不在程序运行的本地目录(或者子目录)下,则需要改成find / -name xxxx 但耗时会很长
    system(cmd);
    
    //文件中取绝对路径
    pf = fopen("tmptxt", "r");
    if (pf)
    {
        re = fscanf(pf, "%s", file_path);//只取第一行 也就是默认不存在同名文件
        if (-1 == re)
        {
            printf("err0\n");
            return 0;
        }
        else
        {
            flcose(pf);
            pf = NULL;
        }
    }
    else
    {
        printf("err1\n");
        return 0;
    }
    
    if (0 == strlen(file_path))
    {
        printf("err2\n");
        return 0;
    }
    
    //获取目录名
    p = strstr(file_path, file_name);
    if (p)
    {
        p = '\0';
        strcpy(dir_path, file_path);//也可以不cp直接用file_path
    }
    
    //通过c语言展开ls这个路径c语言变量 其实我没有理解这句话 先这么做吧
    snprintf(cmd, 256, "ls %s", dir_path);
    system(cmd);
    
    return 0;
}

如果哪里有异常就加printf打印出来各个变量

以上就是关于用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径全部的内容,包括:用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9314052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存