Linux C语言编程:获取当前路径 (linux c获取当前路径)
在Linux系统下,我们通常需要获取当前程序执行的路径,以便读取或写入配置文件、日志文件等。本文将简要介绍如何在C语言中获取当前路径。
一、使用getcwd函数获取当前路径
getcwd函数用于获取当前的工作路径,其函数原型为:
“`c
char *getcwd(char *buf, size_t size);
“`
其中,buf是保存当前路径的缓存区,size是buf的大小。函数返回buf指针,如果出现错误,返回NULL。
例子如下:
“`c
#include
#include
#define MAX_PATH 1024
int mn()
{
char path[MAX_PATH];
if(getcwd(path, MAX_PATH) != NULL)
printf(“Current path: %s\n”, path);
else
perror(“getcwd() error”);
return 0;
}
“`
在以上代码中,我们首先定义了一个大小为MAX_PATH的字符数组path,用于保存当前路径。然后,我们使用getcwd函数获取当前路径,并将返回的值保存到path数组中。我们输出path数组的值,即可获取当前路径。
二、使用readlink函数获取当前路径
readlink函数用于读取符号链接文件的值,其函数原型为:
“`c
ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
“`
其中,pathname是符号链接文件的路径名,buf是缓存区,bufsiz是缓存区大小。如果成功,该函数返回赋值到缓存区中的字符数;如果失败,返回-1。
我们可以利用readlink函数获取当前路径。如下:
“`c
#include
#include
#include
int mn()
{
char path[PATH_MAX];
if(readlink(“/proc/self/exe”, path, sizeof(path)) != -1)
printf(“Current path: %s\n”, path);
else
perror(“readlink() error”);
return 0;
}
“`
在以上代码中,我们首先定义了一个大小为PATH_MAX的字符数组path,用于保存当前路径。然后,我们使用readlink函数读取符号链接文件”/proc/self/exe”的值,并将返回的值保存到path数组中。我们输出path数组的值,即可获取当前路径。
三、