JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... ン名を表すために使う。 文字列は、文字列テーブルセクションへのインデックスとして参照される。 インデックス 0 の最初のバイトは、ヌルバイト ('\0') を 保持すると定義されている。 同様に文字列テーブルの最後のバイトもヌル文字を保持すると定義されている。 これは全ての ... 文字列がヌルバイトで終端されていることを保証するためである。 オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照を配置ま ... ... の場合には、 最初の strtok () の呼び出しで NULL が返ることになる)。 各トークンの末尾は、次の区切りバイトが見つかるか、終端のヌルバイト ('\0') に達するまで文字列を前方に検索することで見つかる。 区切りバイトが見つかった場合には、 現在のトークンの終わりを示すた ... めに、 見つかった区切りバイトがヌルバイトで上書きされ、 strtok () はポインターを次のバイトに設定する。 このポインターは、次のトークンを検索する際の開始点として使用さ ... ... の場合には、 最初の strtok () の呼び出しで NULL が返ることになる)。 各トークンの末尾は、次の区切りバイトが見つかるか、終端のヌルバイト ('\0') に達するまで文字列を前方に検索することで見つかる。 区切りバイトが見つかった場合には、 現在のトークンの終わりを示すた ... めに、 見つかった区切りバイトがヌルバイトで上書きされ、 strtok () はポインターを次のバイトに設定する。 このポインターは、次のトークンを検索する際の開始点として使用さ ... ... pen (3) の場合と同じである。 mode で追記モード (append mode) が指定された場合、ファイル位置の初期値は バッファー中の 最初のヌルバイト ('\0') の位置に設定される。 それ以外の場合は、ファイル位置の初期値はバッファーの先頭になる。 glibc 2.9 以降では、文字 'b' ... 文字として指定 することができる。 この文字は「バイナリ」モードを指定するものである。 このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 される ことはない。また、 fseek (3) SEEK_END は、文字列の長さからの相対値 ではなく、バッファーの末尾 ( size で指 ... き込み用にオープンされたストリームをフラッシュ ( fflush (3)) やクローズ ( fclose (3)) した時に、 (バッファーに空きがあれば) ヌルバイトがバッファーの末尾に書き込まれる。 このようにするためには、呼び出し元は バッファーに 1バイト余裕を作る ( size にこの 1バイト ... ... バイト 文字を取り出し、それをワイド文字に変換して *pwc に格納する。 同時に mbtowc 関数のみが使用する内部状態を更新する。 s がヌルバイト ('\0') 以外を指している場合は、 s から消費するバイト数を返す。 s がヌルバイトを指している場合には 0 を返す。 s から始まる ... ... * src , size_t n ); 説明 strcpy () 関数は src が指す文字列を末尾のヌルバイト ('\0') も含めて dest が指すバッファーにコピーする。 二つの文字列は重なってはならない。受け側の文字列 dest は コピーを受け取 ... 照) strncpy () 関数も同様だが、 src のうち最大でも n バイトしかコピーされない点が異なる。 警告 : src の最初の n バイトの中にヌルバイトがない場合、 dest に格納される文字列はヌルで終端されないことになる。 src の長さが n よりも短い場合、 strncpy () は dest に追 ... 加のヌルバイトを書き込み、全部で n バイトが書き込まれるようにする。 strncpy () の簡単な実装は以下のような感じであろう: char * strncpy(char ... ... * src , size_t n ); 説明 strcpy () 関数は src が指す文字列を末尾のヌルバイト ('\0') も含めて dest が指すバッファーにコピーする。 二つの文字列は重なってはならない。受け側の文字列 dest は コピーを受け取 ... 照) strncpy () 関数も同様だが、 src のうち最大でも n バイトしかコピーされない点が異なる。 警告 : src の最初の n バイトの中にヌルバイトがない場合、 dest に格納される文字列はヌルで終端されないことになる。 src の長さが n よりも短い場合、 strncpy () は dest に追 ... 加のヌルバイトを書き込み、全部で n バイトが書き込まれるようにする。 strncpy () の簡単な実装は以下のような感じであろう: char * strncpy(char ... ... が初期状態に戻るという副作用がある。 この場合には *src に NULL が設定され、 dest に書き込まれた バイト数が返される (終端のヌルバイト (L'\0') は数えない)。 dest が NULL ならば len は無視されて前述のように変換が行わ れるが、変換されたバイトデータはメモリーに ... ... して処理します。 連結した間の部分や連結の最後に、パディング (padding) という追加データを挿入することができます。パディングはヌルバイトによって構成されるものであり、そのサイズは 4 バイトの倍数でなければなりません。これが有用となるのは、たとえば 512 バイト単位 ... ... r * src , size_t n ); 説明 strcat () 関数は、 dest 文字列の後に src 文字列を付け加える。 その際に、 dest の最後にある終端のヌルバイト ('\0') は上書きされ、新たに生成された文字列の末尾に終端のヌルバイトが付与される。 二つの文字列 src と dest は重なってはなら ... 列は常にヌル終端される。 src が n バイト以上の場合、 strncat () は dest に n+1 バイトを書き込む ( src からの n バイトと終端のヌルバイトである)。 したがって、 dest の大きさは最低でも strlen(dest)+n+1 でなければ ならない。 strncat () の簡単な実装は以下のような感 ... 具体例には、 size が strlen(dest) より大きい場合には最大で size-strlen(dest)-1 バイトを src からコピーし、 結果の末尾に終端のヌルバイトを追加する。 この関数では strcat () のバッファーオーバーランが発生するという問題が修正されているが、 size が小さすぎた場合に ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。