Linux 中C语言getcwd()函数的用法

先来看该函数的声明:

#include

char *getcwd(char *buf,size_t size);

介绍:

参数说明:getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数size为buf的空间大小。

普通的用法会是这样:

#define MAX_SIZE 255

char path(MAX_SIZE);

getcwd(path,sizeof(path));

puts(path);

这样会将工作目录的绝对路径复制到buf所指向的空间中,但如果路径长度大于size,则会返回NULL,错误代码为ERANGE.所以我们在定义path的时候得定义的足够大,但这样又会使得内存浪费,Linux的文件名长度限制为255个英文字符,理论上绝对路径的大小应该可以足够大,故而这样使用总有返回NULL的时候,所以getcwd()个我们提供了下面的一种用法:

可以采取令 buf 为 NULL并使 size 为零(百度百科里介绍可以使用负值但我测试的时候是段错误)来使 getcwd 调用 malloc 动态给 buf 分配,但是这种情况要特别注意使用后释放缓冲以防止内存泄漏。

#include

#include

#include

int main(void)

{

char *path = NULL;

path = getcwd(NULL,0);

puts(path);

free(path);

return 0;

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

linux之getcwd函数解析,Linux 中C语言getcwd()函数的用法相关推荐

  1. c语言open函数打开文件方式,Linux中C语言open函数打开或创建文件详细讲解

    Linux中C语言open函数打开或创建文件详细讲解 Linux中C语言open函数打开或创建文件详细讲解 头文件: #include #include #include 函数原型: int open ...

  2. pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换

    pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换 目录

  3. 延时作用是什么意思c语言,单片机中C语言延时函数

    原标题:单片机中C语言延时函数 延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有 ...

  4. imfilter c语言,opencv中cvFilter2D( ) 函数filter2D()函数与MATLAB中imfilter()函数的差异...

    出处: 1:cvFilter2D() 函数为opencv中c语言函数 2:filter2D()函数为opencv中c++函数 3:imfilter()函数为matlab版本函数 计算结果的异同: 2( ...

  5. python中sort函数源代码_Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

  6. mod函数在计算机中实例,excel MOD函数的使用方法实例 MOD函数的公式语法及使用方法实例...

    excel MOD函数的使用方法实例 MOD函数的公式语法及使用方法实例,这个问题是我们很多人都很困惑的一个问题,excel MOD函数的使用方法实例是我们非常常用的一个东西,也是我们工作和学习中必不 ...

  7. c语言中 允许函数重载么,简述C++语言支持函数重载问题介绍

    对于C++语言作为一种欲与C兼容的语言,C++语言保留了一部分过程式语言和特点,foo_int_int这样的名字包含了函数名.函数参数数量及类型信息,C++语言就是靠这种机制来实现函数重载的. 因而它 ...

  8. python format函数实例_python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...

  9. php 类static引用函数吗,php中在变量和函数前加static关键字之后的区别

    static全局变量和普通全局变量,static局部变量和普通局部变量,static函数与普通函数的区别?下面本文将一一为你解答. (1)全局变量(外部变量)的说明之前再冠以static 就构成了静态 ...

最新文章

  1. python从入门到实践笔记_Python编程从入门到实践二至七章笔记
  2. footer bar in SAP Fiori as a service
  3. matlab求系统根轨迹代码_要想正确画出根轨迹,先搞清楚这8大法则再说!
  4. 记一次Java AES 加解密 对应C# AES加解密 的一波三折
  5. 构建插件式的应用程序框架(一)----开篇
  6. (转)AIX rootvg 镜像创建与磁盘更换
  7. 前端性能优化(慕课网笔记)-2-渲染优化(浏览器)
  8. [BUUCTF]REVERSE——相册
  9. 快手极速版自动评论脚本
  10. win10计算机策略配置文件,Windows10怎么重置所有本地组策略设置
  11. H2O学习笔记(一)—— H2O概述
  12. SCI检索号识别一法:UT-WOS与UT-ISI
  13. JavaScript 计算地下城堡2资源何时满仓
  14. UI设计师如何应对面试 哪些细节问题不可忽视
  15. USACO--Broken Necklace(C语言)beads
  16. kaggle gradient_descent
  17. 服务器安全证书认证失败,【证书验证失败】证书验证失败怎么解决、怎么办_佰佰安全网...
  18. zabbix监控方式(03) - 通过SNMP服务协议监控路由器/交换机
  19. 因子分析,主成分分析,主因子分析,因子分析函数,极大似然法——数据分析与R语言 Lecture 12
  20. 汽车衡称重系统作弊疯狂? “一部”解决

热门文章

  1. 终端模拟器常用快捷键
  2. 怎么保护PDF的文字不被复制?
  3. 深圳一普通中学老师工资单曝光,秒杀程序员,网友:酸了酸了
  4. 个人所得税法应充分体现经济法原则
  5. R的爬虫和回归模型案例-以北京自如房租价格为例
  6. MySQL Notifier
  7. 计算机连接不上蓝牙鼠标,蓝牙鼠标怎么连接到笔记本电脑?
  8. 别了甲骨文,别了拉里·埃里森!
  9. screenX、clientX、pageX, offsetX的区别
  10. 作为一个程序员,如何保持优秀