2010-05-27 50 views
5

我想將一種鎖定文件放在Linux上的用戶主目錄(來自C++),但fopen'ing〜/ .fluudit似乎不起作用。如何打開用戶的個人文件夾中的文件

fopen("~/.fluudit","w"); //fails 
+0

〜因爲它是翻譯的外殼不在這裏工作了〜到合適的主目錄。 shell將命令行中的特殊字符(〜)替換爲絕對路徑。因此〜不能用於C或C++程序。 – srikanta 2010-05-28 03:58:56

回答

10

您可以使用環境變量HOME,如果這是不存在的,你可以使用密碼數據庫:

#include <unistd.h> 
#include <sys/types.h> 
#include <pwd.h> 

struct passwd *pw = getpwuid(getuid()); 

const char *homedir = pw->pw_dir; 
4

~擴張,比方說,getenv("HOME")被稱爲通配,是您首先需要做一些事情。你沒有說你正在使用哪個庫或框架,但有些提供了這個。

相關問題