JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... td.h > #include < errno.h > int main(int argc, char *argv[]) { struct passwd pwd; struct passwd *result; char *buf; size_t bufsize; int s; if (argc != 2) { fprintf(stderr, "Usage: %s username\n", argv[0]); exit(EXIT_FAILURE); } bufsize = sysconf(_SC_GET ... PW_R_SIZE_MAX); if (bufsize == -1) /* 値を決定できなかった */ bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { pe ... rror("malloc"); exit(EXIT_FAILURE); } s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result); if (result == NULL) { if (s == 0) printf("Not found\n"); else { errno = s; perror("getpwnam_r"); } exit(EXIT_FA ... ... td.h > #include < errno.h > int main(int argc, char *argv[]) { struct passwd pwd; struct passwd *result; char *buf; size_t bufsize; int s; if (argc != 2) { fprintf(stderr, "Usage: %s username\n", argv[0]); exit(EXIT_FAILURE); } bufsize = sysconf(_SC_GET ... PW_R_SIZE_MAX); if (bufsize == -1) /* 値を決定できなかった */ bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { pe ... rror("malloc"); exit(EXIT_FAILURE); } s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result); if (result == NULL) { if (s == 0) printf("Not found\n"); else { errno = s; perror("getpwnam_r"); } exit(EXIT_FA ... ... td.h > #include < errno.h > int main(int argc, char *argv[]) { struct passwd pwd; struct passwd *result; char *buf; size_t bufsize; int s; if (argc != 2) { fprintf(stderr, "Usage: %s username\n", argv[0]); exit(EXIT_FAILURE); } bufsize = sysconf(_SC_GET ... PW_R_SIZE_MAX); if (bufsize == -1) /* 値を決定できなかった */ bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { pe ... rror("malloc"); exit(EXIT_FAILURE); } s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result); if (result == NULL) { if (s == 0) printf("Not found\n"); else { errno = s; perror("getpwnam_r"); } exit(EXIT_FA ... ... td.h > #include < errno.h > int main(int argc, char *argv[]) { struct passwd pwd; struct passwd *result; char *buf; size_t bufsize; int s; if (argc != 2) { fprintf(stderr, "Usage: %s username\n", argv[0]); exit(EXIT_FAILURE); } bufsize = sysconf(_SC_GET ... PW_R_SIZE_MAX); if (bufsize == -1) /* 値を決定できなかった */ bufsize = 16384; /* 十分大きな値にすべき */ buf = malloc(bufsize); if (buf == NULL) { pe ... rror("malloc"); exit(EXIT_FAILURE); } s = getpwnam_r(argv[1], &pwd, buf, bufsize, &result); if (result == NULL) { if (s == 0) printf("Not found\n"); else { errno = s; perror("getpwnam_r"); } exit(EXIT_FA ... ... < stdio.h > #include < stdlib.h > #include < string.h > #include < sys/socket.h > int main(void) { #define VLEN 10 #define BUFSIZE 200 #define TIMEOUT 1 int sockfd, retval; struct sockaddr_in addr; struct mmsghdr msgs[VLEN]; struct iovec iovecs[VLEN]; c ... har bufs[VLEN][BUFSIZE+1]; struct timespec timeout; sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd == -1) { perror("socket()"); exit(EXIT_FA ... LURE); } memset(msgs, 0, sizeof(msgs)); for (int i = 0; i < VLEN; i++) { iovecs[i].iov_base = bufs[i]; iovecs[i].iov_len = BUFSIZE; msgs[i].msg_hdr.msg_iov = &iovecs[i]; msgs[i].msg_hdr.msg_iovlen = 1; } timeout.tv_sec = TIMEOUT; timeout.tv_nsec = 0; re ... ... 、この後でこの関数や cuserid () が呼び出された際に上書きされることがある。 getlogin_r () は、上記の同じユーザー名を、大きさ bufsize の配列 buf に入れて返す。 cuserid () は、現在のプロセスの実効ユーザーID に対応するユーザー名の 文字列へのポインターを返す。 ... た。 ENXIO 呼び出し元プロセスには制御端末がない。 ERANGE (getlogin_r) (終端のヌルバイト ('\0') も含めた) ユーザー名の長さが bufsize よりも長い。 Linux/glibc には以下のエラーもある。 ENOENT utmp ファイルに対応するエントリーがなかった。 ENOMEM passwd 構造体 ... ... 、この後でこの関数や cuserid () が呼び出された際に上書きされることがある。 getlogin_r () は、上記の同じユーザー名を、大きさ bufsize の配列 buf に入れて返す。 cuserid () は、現在のプロセスの実効ユーザーID に対応するユーザー名の 文字列へのポインターを返す。 ... た。 ENXIO 呼び出し元プロセスには制御端末がない。 ERANGE (getlogin_r) (終端のヌルバイト ('\0') も含めた) ユーザー名の長さが bufsize よりも長い。 Linux/glibc には以下のエラーもある。 ENOENT utmp ファイルに対応するエントリーがなかった。 ENOMEM passwd 構造体 ... ... 、この後でこの関数や cuserid () が呼び出された際に上書きされることがある。 getlogin_r () は、上記の同じユーザー名を、大きさ bufsize の配列 buf に入れて返す。 cuserid () は、現在のプロセスの実効ユーザーID に対応するユーザー名の 文字列へのポインターを返す。 ... た。 ENXIO 呼び出し元プロセスには制御端末がない。 ERANGE (getlogin_r) (終端のヌルバイト ('\0') も含めた) ユーザー名の長さが bufsize よりも長い。 Linux/glibc には以下のエラーもある。 ENOENT utmp ファイルに対応するエントリーがなかった。 ENOMEM passwd 構造体 ... ... which , void * buf , size_t bufsize , size_t * ret ); 注意 : このシステムコールの宣言は glibc のヘッダーでは提供されていない。「注意」を参照。 説明 注意 : この ... ールに関する情報をカーネルに問い合わせる。 情報は buf が指し示すバッファーに格納されて返される。 呼び出し元は buf のサイズを bufsize に指定しなければならない。 得られる情報の正確な意味とフォーマットは、 which でどの操作を指定するかによって異なる。 現在ロー ... ... きる。 しかし、POSIX.2 は定数 PASS_MAX , _SC_PASS_MAX と関数 getpass () を取り下げた。 glibc 版は _SC_PASS_MAX を受け付け、 BUFSIZE (例えば 8192) を返す。 バグ この関数を呼び出したプロセスは、 できる限り早くそのパスワードを消去 (ゼロクリア) し、 クリアテ ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。