当前位置: 技术问答>linux和unix
在c中如何获得用户目录
来源: 互联网 发布时间:2015-10-29
本文导语: 一个名为"aa"的用户,如果在终端下输入:"echo $HOME",就会返回他的缺省工作目录,例如"/home/aa". 如果我想在c代码里面获取当前用户的却省工作目录,该如何做呢? 我试了"$home",不行。 -_-!!! :-P 谢谢。 That's all. ...
一个名为"aa"的用户,如果在终端下输入:"echo $HOME",就会返回他的缺省工作目录,例如"/home/aa".
如果我想在c代码里面获取当前用户的却省工作目录,该如何做呢?
我试了"$home",不行。
-_-!!!
:-P
谢谢。
That's all.
如果我想在c代码里面获取当前用户的却省工作目录,该如何做呢?
我试了"$home",不行。
-_-!!!
:-P
谢谢。
That's all.
|
#include
int main()
{
char *p;
p = (char *)malloc(sizeof(getenv("HOME")));
strcpy(p, getenv("HOME");
printf("%sn", p);
return 0;
}
int main()
{
char *p;
p = (char *)malloc(sizeof(getenv("HOME")));
strcpy(p, getenv("HOME");
printf("%sn", p);
return 0;
}
|
用popen可以获取系统命令的返回,如:
FILE *fp;
fp = popen("echo $HOME","w");
这个时候可以读fp的内容就获取到用户的目录了。
FILE *fp;
fp = popen("echo $HOME","w");
这个时候可以读fp的内容就获取到用户的目录了。
|
telldir
getpwuid
uid可以getuid
范例 #include
#include
main()
{
struct passwd *user;
user= getpwuid(6);
printf(“name:%sn”,user->pw_name);
printf(“uid:%dn”,user->pw_uid);
printf(“home:%sn”,user->pw_dir);
}
执行 name:shutdown
uid:6
home:/sbin
getpwuid
uid可以getuid
范例 #include
#include
main()
{
struct passwd *user;
user= getpwuid(6);
printf(“name:%sn”,user->pw_name);
printf(“uid:%dn”,user->pw_uid);
printf(“home:%sn”,user->pw_dir);
}
执行 name:shutdown
uid:6
home:/sbin
|
~ 这个符号表示的是用户目录吧?