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数组的值,即可获取当前路径。

三、


数据运维技术 » Linux C语言编程:获取当前路径 (linux c获取当前路径)