#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语言展开这个路径、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)