【C语言】basename函数

2023-09-22 09:33:00

basename()是一个Linux系统编程常用的C语言库函数,包含在头文件<libgen.h>中。basename()函数的作用是从一个路径中提取文件名部分。主要的原型如下:

char *basename(char *path);

给定一个文件路径,basename会返回指向路径中最后一个'/'后的文件名部分字符串的指针。例如:

路径:/home/user/file.txt
调用:basename("/home/user/file.txt")
返回:"file.txt"

如果路径中不包含'/',则直接返回整个路径字符串。basename()不会修改原输入字符串,只是返回一个指针,指向路径中的文件名部分。

basename()返回的字符串指针是指向原输入路径字符串中的一部分,并没有新分配内存。具体来说,basename()的返回值是指向路径输入字符串中最后一个'/'字符后面的子串,只是将原字符串中的一段取出来返回,没有复制和新分配内存。例如:

char path[] = "/home/user/file.txt";
char *name = basename(path); 

这里name指向的是path字符串中"file.txt"的首地址,并没有分配新的内存。所以不需要再特别释放name指向的内存。basename()的原型中也没有类似malloc/free那种需要释放内存的函数,它仅仅是返回一个指针而已。

来自对话AI

更多推荐

js同级弹窗实现数据传输修改

window.postMessage是一种用于实现跨窗口通信的HTML5特性。它允许在不同窗口或iframe之间安全地传递数据,即使这些窗口来自不同的域名。window.postMessage方法接受两个参数:message:要发送的消息,可以是一个字符串或一个对象。targetOrigin:指定接收消息的窗口的源(o

C语言每日一题(7):获得月份天数

文章主题:获得月份天数🔥所属专栏:C语言每日一题📗作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶个人主页:[₽]的个人主页🏄🌊目录前言编程起因项目介绍设计思路1.整体逻辑2.具体逻辑代码展示效果展现结语前言编程起因最近在牛客网上刷到了一个很好的训练分支语句的题目,于是想出了求两个数

NeRF-RPN:一个通用的目标检测框架

论文标题:NeRF-RPN:AgeneralframeworkforobjectdetectioninNeRFs代码:https://github.com/lyclyc52/NeRF_RPN图1:在NeRF上的Regionproposal结果视频演示效果:https://www.youtube.com/watch?v=

进程与线程

1进程1.1进程的概念进程就是正在运行的程序,它代表了程序所占用的内存区域1.2进程的特点独立性进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间动态性进程与程序的区别在于.程序只是一个静态的指令集合,而进程

spring security为啥是个垃圾框架?

古时候写代码,权限这块写过一个库,基本就是一个泛型接口,里面有几个方法:如验证输入的principal和credentials,返回token和authorities和roles,role就是一堆authorities集,也就说就是返回一堆authorities。然后每次请求会拿token找到authorities,然

C语言之指针进阶篇(3)

目录思维导图回调函数案例1—计算器案例2—qsort函数关于qsort函数NO1.NO2.NO3.NO4.演示qsort函数的使用案例3—冒泡排序整型数据冒泡排序回调函数搞定各类型冒泡排序cmp_int比较大小cmp传参数NO1.NO2.解决方案交换swap总代码今天我们学习指针难点之回调函数🆗🆗🆗。首先我们用思

springcloud3 分布式事务实现逻辑思想2

一分布式事务逻辑1.1CAP理论CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性)这3个基本需求,最多只能同时满足其中的2个。总结:1.2CAP的应用场景假如现在有这样的场景:用户访问了N1,修改了

【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题

前言💓作者简介:加油,旭杏,目前大二,正在学习C++,数据结构等👀💓作者主页:加油,旭杏的主页👀⏩本文收录在:再识C进阶的专栏👀🚚代码仓库:旭日东升1👀🌹欢迎大家点赞👍收藏⭐加关注哦!💖学习目标:在上一篇博客中,我们学习了回调函数,以及怎么使用qsort函数去排序;那么在这一篇博客中,我们来更加详细

HTTP各版本差异

HTTP1.0无法复用连接HTTP1.0为每个请求单独新开一个TCP连接#mermaid-svg-9N3exXRS4VvT4bWF{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-9N3e

基于Matlab实现图像分割技术(附上源码+图像)

Matlab是一种功能强大的编程语言和开发环境,被广泛应用于图像处理和计算机视觉领域。图像分割是图像处理中的重要技术之一,它将图像分割成若干个具有相似特征的区域,以便更好地理解和处理图像。在Matlab中,实现图像分割可以使用多种方法和函数。下面将介绍几种常用的图像分割技术及其在Matlab中的实现。基于阈值的分割:基

LeetCode 2591. 将钱分给最多的儿童

【LetMeFly】2591.将钱分给最多的儿童力扣题目链接:https://leetcode.cn/problems/distribute-money-to-maximum-children/给你一个整数money,表示你总共有的钱数(单位为美元)和另一个整数children,表示你要将钱分配给多少个儿童。你需要按照

热文推荐