日期:2014-05-16  浏览次数:20637 次

请问我该如何在~目录创建一个文件呢?
rt,多谢各位不吝赐教

char   *path= "a.c ";
open(path,O_CREAT,77777);

同样方法将*path= "~/a.c "就不能创建了,这是为什么呢?

------解决方案--------------------
先用getpwent得到当前uid的HOME目录,然后将其与你的路径组合起来。
getpwent的例子代码如下:

#include <stdio.h>
#include <pwd.h>

int
main ()
{
struct passwd *pwd;

setpwent ();
while ((pwd = getpwent ()) != NULL)
{
printf ( "%d:%s:%s \n ", pwd-> pw_uid, pwd-> pw_name, pwd-> pw_dir);
if(pwd-> pw_uid == getuid())
{
printf ( " CURRENT: %d:%s:%s \n ", pwd-> pw_uid, pwd-> pw_name, pwd-> pw_dir);
}
}
endpwent ();
}