Linux C 文件路径中获取文件名及路径

编程中有时会遇到需要把文件路径中的文件名或者路径提取出来的情况,发现了两个好用的函数记录一下。


一、提取文件名

头文件:#include <libgen.h>
**函数:**char *basename(char *path);

注:这个函数不会修改传入的 path 内容。

二、提取路径

头文件:#include <libgen.h>
**函数:**char *dirname(char *path);

注:这个函数会修改传入的 path 内容,如果不像path被改变需要重新申请一个buf传入,如果传入的是宏则会段错误。

三、提取结果示例

在这里插入图片描述
摘抄自:man 3 basename

四、使用示例

#include <stdio.h>
#include <libgen.h>
#include <string.h>
#include <stdlib.h>static char s_filepath[] = "/mnt/usr/file.txt";int main(int argc, char **argv)
{char *path;printf("FILE_PATH - FILE : %s\n", basename(s_filepath));printf("1 -- s_filepath = %s\n", s_filepath);path = strdup(s_filepath);printf("1 -- path = %s\n", path);printf("FILE_PATH - PATH : %s\n", dirname(path));printf("2 -- path = %s\n", path);free(path);return 0;
}

结果:

FILE_PATH - FILE : file.txt
1 -- s_filepath = /mnt/usr/file.txt
1 -- path = /mnt/usr/file.txt
FILE_PATH - PATH : /mnt/usr
2 -- path = /mnt/usr

从结果也可以看出dirname修改了传入的路径内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381768.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

从路径名中得到文件名 MFC

从路径名中得到文件名 MFC 转载▼ strFileNamestrPathName.Mid(strPathName.ReverseFind( \\ )1); //若去掉.txt .exe .doc等后缀&#xff0c;共4个字符 strFileNamestrPathName.Mid(strPathName.ReverseFind( \\ )1&#xff0c;strPathName.length()-4); CString CFile…

C++读取特定路径下文件目录及文件名称

C读取特定路径下文件目录及文件名称亲测有效。主要用到了以下几个头文件(类)&#xff1a;io.h&#xff0c;fstream&#xff0c;string&#xff0c;vector 1、读取某给定路径下所有文件夹与文件名称&#xff0c;并带完整路径。代码如下&#xff1a; 1 void getAllFiles(string…

C++读取文件夹中文件名以及文件路径

文章目录 1 获取文件夹中所有文件名&#xff0c;包含子文件夹中的文件名2 获取文件夹中所有文件路径&#xff0c;包含子文件夹中的文件路径3 获取母文件夹中所有文件名&#xff0c;不包含子文件夹中的文件名4 只获取母文件夹中的文件路径&#xff0c;不包含子文件夹中的文件5 主…

C++ 获取文件路径和文件名

C 获取文件路径和文件名 就是基本的字符串截取 const char * filePath“F:\a.txt”; string filePath_strfilePath; string fileNamefilePath_str.substr(filePath.find_last_of(’\\’)1); const char *filename_cfileName.c_str(); ** 1. string 转换 成 const char *…

如何设置打印机?

1.取消禁用Guest用户&#xff0c;因为别人要访问安装打印机的按个电脑就是以guest账户访问的。 点击【开始】按钮&#xff0c;在【计算机】上右键&#xff0c;选择【管理】&#xff0c;如下图所示&#xff1a; 在弹出的【计算机管理】窗口中找到【Guest】用户 双击【Guest】&am…

Epson 打印机设置

在新到的 680 的打印机打印新的电费收据&#xff0c; 驱动选择 Windows 自带的 1600k 驱动&#xff1b;后进连打&#xff0c;左边卡位在 4 处。 一、 问题现象 如果您&#xff08;比如使用了进纸旋钮调整页顶位置之后&#xff0c;或者在使用专用软件打印套打票据的时候&a…

Excel的公式和函数

目录 运算符 地址的引用 逻辑函数 文本函数 统计函数 查找与引用函数 日期函数 常见出错信息 一、运算符 算术运算符 若要进行基本的数学运算&#xff08;如加法、减法、乘法或除法&#xff09;、合并数字以及生成数值结果&#xff0c;请使用以下算术运算符。 比较运算符 可以使…

excel 数据计算

简单计算&#xff1a; 算销售额&#xff0c;B2*C2&#xff0c;右下双击填充下面的 计算 D2&#xff1a;D6 到 D7 函数计算 日期计算 DATEDIF(start,date,end_date,unit) 返回两个日期之间的年/月/日间隔数 unit&#xff1a;有 Y&#xff1a;指时间段中的整年数 M&#xff1…

计算机二级MS office之excel常用函数

总结一下计算机二级excel中常用的函数&#xff0c;如果有错误的地方&#xff0c;希望小伙伴们可以多多指教❤️。 本文主要介绍了以下函数(可根据序号进行查阅)&#xff1a; 序号函数名称函数类别1VLOOKUP查询函数2MID、 LEFT、RIGHT文本函数3LOOKUP数组查询函数4RANK排名函数…

[Excel函数] 计算统计类函数

Excel公式规范: (1) 在Excel中输入函数时&#xff0c;是不区分大小写的 (2) 在公式函数中&#xff0c;每个参数都是用逗号分隔的 (3) 参数中的文本要用双引号引起来&#xff0c;对于单纯的数字是不用双引号的 (4) 一定要在英文半角状态下输入标点符号&#xff0c;不能在中文状态…

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Excel计算函数(计算机二级)

Excel计算函数 一、Sum()求和函数1.sum()2.sumif()3.sumifs() 二、Average()求平均值函数三、Max()求最大值函数四、Min()求最小值函数五、Count()求最个数函数1.count()2.counta()3.countif()4.countifs() 六、if()函数七、rank()排名函数 一、Sum()求和函数 1.sum() 双击底下…

【雕爷学编程】Arduino动手做(24)---水位传感器模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

哪些思维方式是你刻意训练过的?

1.管理记忆 2.贴好标签 3.放大苦难 4.绝对理性 5.自以为是 6.调整尺度 7.等价交换 8.断舍离 脑子只要醒着就不停转 18岁左右开始刻意培养自己的各种思维方式 至今6年了 1. 管理自己的脑海 有效的记忆容量是有限的 所以需要管理 更需要合适的记忆结构去管理 很多人会…

电台飞哥美食日记:三顾冒菜,一辈子最难忘的冒菜!

电台飞哥美食日记&#xff1a;三顾冒菜&#xff0c;一辈子最难忘的冒菜&#xff01; 今天&#xff08;2014年9月5日&#xff09;中午&#xff0c;成都交通广播电台《飞哥欢乐派&#xff08;FM 91.4&#xff09;》、成都电视台《吃喝玩乐全接触》的超人气主持人、成都餐饮同业公…

无线充电小车的实物图

无线充电小车的实物图

Type-c快充加无线直播麦克风方案(无线麦克风边充电)LDR6023C专业快充芯片

USB Type-C接口快充加无线麦克风应用&#xff1a; 随着互联网时代的迅速崛起&#xff0c;如今直播的主播越来越多&#xff0c;传统的耳机式直播渐渐被淘汰&#xff0c;取而代之的是无线传输&#xff0c;今天这篇文章就来讲一下无线麦克风加Type-c快充中的快速充电是怎么实现的&…

无线充电模组开发的原理和优势

现在绝大部分的电子设备&#xff0c;如手机、手表、笔记本电脑等都是通过有线的方式进行充电&#xff0c;即一端连接电子设备的充电电池&#xff0c;另一端连接交流电源。这种方式有很多危险的地方&#xff0c;首先频繁的插拔充电插头容易造成接口的损坏&#xff0c;也可能会带…

关于WPC无线充QI认证的发展

文章目录 前言一、手机无线充电的市场规模有多大二、高功率无线充已经普及三、实现高功率无线快充需要什么&#xff1f;总结 前言 从2009年第一款支持无线充电的手机Palm开始&#xff0c;手机厂商为了让用户体验到无感化的充电方式&#xff0c;对无线充电技术进行了十余年的探…

YOLOv8+ByteTrack多目标跟踪(行人车辆计数与越界识别)

课程链接&#xff1a;https://edu.csdn.net/course/detail/38901 ByteTrack是发表于2022年的ECCV国际会议的先进的多目标跟踪算法。YOLOv8代码中已集成了ByteTrack。本课程使用YOLOv8和ByteTrack对视频中的行人、车辆做多目标跟踪计数与越界识别&#xff0c;开展YOLOv8目标检测…