3
    uid_t userId = getuid();
    ユーザー ID = 999; // エラーの原因

    エラー番号 = 0;
    passwd* pw = getpwuid(userId);

    int n = errno; // pw = NULL、n = 0

このコードを Linux で実行すると、pw = NULL (予期される) と errno = 0 が返さます。なにが問題ですか?

4

2 に答える 2

4

ドキュメントから:

ERRORS
         0 or ENOENT or ESRCH or EBADF or EPERM or ...
                The given name or uid was not found.

問題が見当たりません。

于 2011-04-24T07:02:25.220 に答える
3

リンクしたドキュメントによると:

   0 or ENOENT or ESRCH or EBADF or EPERM or ...
          The given name or uid was not found.

したがって、 errno == 0 は、見つからない uid に対して完全に有効です。

于 2011-04-24T07:02:58.093 に答える