-1
現在のユーザ名:Cのユーザー名 - 取得、私は次のパスからファイルをインポートしたい
輸入「/プロジェクト/ TFS /ユーザー/ ジョン /検証/ ......
それは、現在のユーザー を取り、常にジョンのファイルを服用しないようにCの$ USERに「ジョン」を変更する方法があり、私は、$ USERを試してみましたが、私はコンパイルエラーを取得しています。
そこですcでそれを行う方法?
現在のユーザ名:Cのユーザー名 - 取得、私は次のパスからファイルをインポートしたい
輸入「/プロジェクト/ TFS /ユーザー/ ジョン /検証/ ......
それは、現在のユーザー を取り、常にジョンのファイルを服用しないようにCの$ USERに「ジョン」を変更する方法があり、私は、$ USERを試してみましたが、私はコンパイルエラーを取得しています。
そこですcでそれを行う方法?
あなたはそれを行うgetpwuidとgetuid機能を使用することができます。
#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;
}
を 'はsprintfてみてください(STR、 "/プロジェクト/ TFS /ユーザー/%sの/検証を"、のgetenv( "USER"))'。 –
人々があなたの質問に答えるのを助けるためには、エラーについてより具体的に説明する必要があります。あなたの[mcve]から得た正確なエラーを組み込むためにあなたの投稿を編集してください(できれば、コピー+貼り付けを使用して転写エラーを避ける)。 –
@ usr--その質問はこれよりも制限されているようです。例えば、 'getenv()'を使わないことを指定します。 –