getcwd函数

来源:互联网 发布:网络下载速度很不稳定 编辑:程序博客网 时间:2024/05/20 18:54

 

说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址

 

 

 

 

五,getcwd函数

getcwd函数

 

头文件

<unistd.h>

 

 

函数形式

char *getcwd(char *buffer, size_t size)

 

 

返回值

成功

失败

是否设置errno

返回指向当前工作目录字符串的指针

NULL

说明:getcwd函数获得当前工作目录,将工作目录保存在调用者提供的字符串中,字符串的大小是由用户分配。

 

错误信息:

1):EINVAL:size参数为零或者buffer是空指针。

2):ERANGE:size参数小于当前工作目录的长度,需要分配更大的内存。

3):EACCES:权限不够,没有读或者搜索文件名称的权限。

实战演练:

getcwd函数的相关说明看,要使得该函数获得用户所期望的结果,必须给buffer分配足够的空间。可以定义一个长度为PATH_MAX的字符串,用于保存当前路径。PATH_MAXPOSIX标准中可选的一个常量。也就是说该变量可能在limits.h中有定义,也可能没有。

 

#include <iostream>

#include <limits.h>

#include <unistd.h>

 

#ifndef PATH_MAX

#define PATH_MAX 1024

#endif

 

int main(void)

{

   char cur_work_dir[PATH_MAX] = {'\0'};

   

   std:: cout << "Current Max Path Length Is << "

       << PATH_MAX << std::endl;

   

   if (getcwd(cur_work_dir, PATH_MAX) == NULL)

    {

       perror("Couldn't get current working directory!");

       return (1);

   }   

   

   std::cout << "Current Working Directory is :" <<cur_work_dir << std::endl;

   

   return (0);

}

 

原创粉丝点击