マンページで角かっこ内のテキストポイントを理解する

マンページで角かっこ内のテキストポイントを理解する

一部のマニュアルページでは、次のようになります。https://man7.org/linux/man-pages/man3/memchr.3.html、次の内容が表示されます。

       void *memchr(const void s[.n], int c, size_t n);

例えばhttps://man7.org/linux/man-pages/man3/bsearch.3.html

  void *bsearch(const void key[.size], const void base[.size * .nmemb],
                     size_t nmemb, size_t size,
                     int (*compar)(const void [.size], const void [.size]));

[.n]、、、 [.nmemb]という用語の意味や説明は何ですか[.size]?もう一つのことはどういう意味ですか?

答え1

配列またはポイントは、オブジェクト(または組み合わせ)のサイズを表します。例えば、

void *memchr(const void s[.n], int c, size_t n);

s書き込みが書き込まれ、バイト配列(またはそれ以上)をconst void * s指します。nこれこのシンボルを紹介すると約束します。C99 では VLA 構文を参照しています。対応する構文先行ポイントを使用せず、使用する前にサイズパラメータを宣言する必要があります(私の知る限り効果はありませんvoid *)。

このタイプの構文の有効な例は次のとおりです。

int main(int argc, char * argv[argc + 1]);

宣言はbsearchより複雑です。keysize を指す単一のオブジェクトsize、各 size を指す要素の配列base、および size オブジェクトへのポインタを使用して関数が呼び出されます。nmembsizecomparsize

答え2

文書を続ける

このmemchr()関数は、sが指すメモリ領域の最初のnバイトをスキャンして、cの最初のインスタンスを見つけます。

したがって、これが言うのは、n指す位置のバイトがs考慮されることです。

関連情報