char *tmp;
char *pathname;
path_get(&file->f_path);
tmp = (char *)__get_free_page(GFP_TEMPORARY);
if (!tmp) {
return -ENOMEM;
}
pathname = d_path(&file->f_path, tmp, PAGE_SIZE);
path_put(&file->f_path);
if (IS_ERR(pathname)) {
free_page((unsigned long)tmp);
return PTR_ERR(pathname);
}
printk(KERN_WARNING "File name: %s\n", pathname);
free_page((unsigned long)tmp);
char *pathname;
path_get(&file->f_path);
tmp = (char *)__get_free_page(GFP_TEMPORARY);
if (!tmp) {
return -ENOMEM;
}
pathname = d_path(&file->f_path, tmp, PAGE_SIZE);
path_put(&file->f_path);
if (IS_ERR(pathname)) {
free_page((unsigned long)tmp);
return PTR_ERR(pathname);
}
printk(KERN_WARNING "File name: %s\n", pathname);
free_page((unsigned long)tmp);
本文介绍了一种在Linux环境下获取文件完整路径的方法。通过使用`path_get`和`d_path`函数来获取文件路径,并利用临时分配的内存进行存储。文章详细展示了如何处理内存分配失败的情况及如何释放内存。
194

被折叠的 条评论
为什么被折叠?



