bcopy

指定したスクラッチ・メモリー外部のコピー元アドレスからスクラッチ・メモリー内部のコピー先アドレスに、バイト数で指定サイズをコピーします。

void bcopy(void src, void dest, size_t size)

bcopy関数はsrcがポイントするメモリーから、destがポイントするメモリーへsizeバイトをコピーします。ソース・メモリーはユーザー空間内に存在しないことと、宛先メモリーがDTraceスクラッチ・メモリー内に存在する必要があります。

例7-4 bcopyを使用してメモリーの場所と他の間でデータをコピーする方法

この例ではbcopy関数を使用して、14文字を`linux_bannerポインタから14バイトのメモリーが割り当てられている別のメモリー・ポインタsにコピーします。printf行は、ポインタsに格納されている値の文字列を出力します。出力される文字列は`linux_bannerに格納されている最初の14文字と同じです。

 BEGIN
 {
         s = (char *)alloca(14);
         bcopy(`linux_banner, &s[0], 13);
         printf("%s\n", stringof(s));
         exit(0);
 }