名前 | 形式 | 機能説明 | 戻り値 | 属性 | 関連項目 | 注意事項
#include<libgen.h>int isencrypt(const char *fbuf, size_t ninbuf);
isencrypt() は、ヒューリスティックを使用して文字のバッファが 暗号化されているかどうかを判別します。この関数には 2 つの引数が必要になります。1 つは文字配列へのポインタで、もう 1 つはバッファの中の文字数です。
isencrypt() は、最初のブロックの文字すべてが ASCII 文字ならば、そのファイルは暗号化されていないと見なします。最初の ninbuf 文字に非 ASCII 文字があると、isencrypt() は setlocale() LC_CTYPE カテゴリが C または ascii に設定されている場合に、バッファが暗号化されていると見なします。
LC_CTYPE カテゴリが C または ascii 以外の値に設定されていると、isencrypt() はヒューリスティックを組み合わせて、バッファが暗号化されているかどうかを判別します。ninbuf に少なくとも 64 文字あれば、カイ二乗分布を用いてバッファのバイトが均一に分布してるかを判別します。 バイトが均一に分布している場合には、isencrypt() は、バッファが暗号化されていると見なします。バッファに格納される文字数が 64 文字よりも少なければ、NULL 文字および復帰改行による終端について検査を行なって、バッファが暗号化されているかを判別します。
バッファが暗号化されている場合は 1 を返し、それ以外の場合には 0 を返します。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
MT レベル | MT-Safe |
マルチスレッドアプリケーションを コンパイルする際に、_REENTRANT フラグをコンパイル行に定義する必要があります。このフラグはマルチスレッドアプリケーションの際にのみ使います。