答え1
移植可能なオプションは6つ以上です。これは、これがmkstemp(3)
実行されシミュレーションされる動作であるためです。ただし、一部のシステムでは、6より多く指定した場合は末尾の6のみが使用され、残りはそのまま残りますX
。それにもかかわらず、CSPRNGが内部的に使用されている場合、攻撃者がプロセスをDoSするのを防ぐには6つで十分です。
一部のシステム(GNUツールを使用するLinuxなど)では、移植可能でなくてもテンプレートを完全に削除できます。ほとんどのシステムには、テンプレートまたはプレフィックスが付いたファイルが必要です-t
。必要なファイルがにない場合は、$TMPDIR
テンプレートが必要です。少なくともFreeBSDとmacOSでは。
mktemp(1)
POSIXではこれを要求しないため、一部のシステムではこれをまったくサポートしていない可能性があります。ただし、広く使用されており、少なくともLinux、macOS、FreeBSD、NetBSD、OpenBSD、HP-UX、およびSolarisに存在するため、GNU coreutilを持たないシステムにGNU coreutilをインストールするように簡単に言うことができます。