c语言怎么获得linux的home目录

如题所述

可以利用getenv函数来实现。

在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过

echo $HOME来查看。

而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlib.h, 原型为

char *getenv(char *name);

功能为获取名字为name的环境变量字符串。

所以,下面代码就可以获取到home目录名了:

char *home;
home = getenv("HOME");
printf("the home path is %s\n", home);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-01
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <stdio.h>

int main(){
    DIR    *dir;
    struct    dirent    *ptr;
    
    dir = opendir("/home");
    
    while((ptr = readdir(dir)) != NULL)
        printf("d_name: %s\n", ptr->d_name);

    closedir(dir);
    return 0;
}

第2个回答  2014-04-01
#include <stdio.h>
#include <unistd.h>
#include <pwd.h>
int main(void)
{
        printf("当前用户的home目录为: %s\n", getpwuid(getuid())->pw_dir);
        return 0;
}

本回答被提问者采纳
第3个回答  2014-04-04
linux系统的home目录,直接输入“cd ~”就可以了吧
相似回答