4

私はいくつかの調査を行いましたが、まだ passwd 構造に苦労しています。

http://www.opengroup.org/onlinepubs/000095399/basedefs/pwd.h.html

ユーザーIDを取得する必要がありますが、それを理解して使用しているとは思いません。

int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **);

このメソッド呼び出しは、必要なすべてのデータを含む構造へのポイントを返します。パラメータについてかなり混乱しています。

構造体 passwd. これを最初に宣言する必要がありますか?struct passwd passwd?

私はこれを使用する方法について完全に迷っています。

最後に、ポインタを埋めたら。データを取得するためにどの呼び出しを使用しますか? 助けてくれてありがとう。

4

3 に答える 3

2

まず、UID を取得したい場合は、ユーザー名が手元にあると思われます。その場合は、getpwnam_r()代わりに使用する必要があります。この関数は、最初のパラメーターとしてgetpwuid_r()名前 ( を渡すことを除いて) とまったく同じように使用されます。char *)

次に、`struct passwd' を宣言する必要はありません。pwd.h をインクルードすると宣言されます。

第三に、関数の正確なシグネチャは次のとおりです。

int getpwnam_r(const char *name, struct passwd *pwd,
               char *buf, size_t buflen, struct passwd **result);

上記で、pwd は出力パラメーターです。それが見つかった場合、関数がパスワードエントリを返す場所です。

最後に、ここからアクセスできるgetpwnam_rLinuxマンページに使用方法の完全な例があります。getpwnam_r

1 : http://manpages.ubuntu.com/manpages/jaunty/en/man3/getpwnam.3.htmlこちら

于 2009-10-22T22:25:33.177 に答える