希望大家可以帮我指正一下,关于系统IO的get_current_dir_name函数的问题

问题遇到的现象和发生背景

编译器一直报警告

问题相关代码,请勿粘贴截图

#include
#include
#include
#include

#include
#include
#include
#include
int main()
{
char *a;

a=(char*)get_current_dir_name();
if (a==NULL)
{
    perror("get error");
    return -1;
}

printf("%s\n",a);
free(a);
return 0;

}

运行结果及报错内容

以下是报错,运行结果就是显示段错误
getwd.c: In function ‘main’:
getwd.c:15:13: warning: implicit declaration of function ‘get_current_dir_name’ [-Wimplicit-function-declaration]
p = (char*)get_current_dir_name();

getwd.c:15:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
p = (char*)get_current_dir_name();
^

这是警告说你定义的变量p没有使用到,或者变量没有初始化,如果不影响程序运行可以忽略