2017-02-01 11 views
-1

現在のユーザ名:Cのユーザー名 - 取得、私は次のパスからファイルをインポートしたい

輸入「/プロジェクト/ TFS /ユーザー/ ジョン /検証/ ......

それは、現在のユーザー を取り、常にジョンのファイルを服用しないようにCの$ USERに「ジョン」を変更する方法があり、私は、$ USERを試してみましたが、私はコンパイルエラーを取得しています。

そこですcでそれを行う方法?

+0

を 'はsprintfてみてください(STR、 "/プロジェクト/ TFS /ユーザー/%sの/検証を"、のgetenv( "USER"))'。 –

+0

人々があなたの質問に答えるのを助けるためには、エラーについてより具体的に説明する必要があります。あなたの[mcve]から得た正確なエラーを組み込むためにあなたの投稿を編集してください(できれば、コピー+貼り付けを使用して転写エラーを避ける)。 –

+0

@ usr--その質問はこれよりも制限されているようです。例えば、 'getenv()'を使わないことを指定します。 –

答えて

0

あなたはそれを行うgetpwuidgetuid機能を使用することができます。

#include <stdio.h> 
#include <sys/types.h> 
#include <pwd.h> 
#include <unistd.h> 
#include <linux/limits.h> 

int main(void) 
{ 
    char path[PATH_MAX] = {0}; 
    struct passwd *p = getpwuid(getuid()); 

    if (p != NULL) 
    { 
     snprintf(path, sizeof(path), "/projects/tfs/users/%s/verification/.", p->pw_name); 
     printf("%s\n", path); 
    } 

    return 0; 
} 
関連する問題