Undefined値
逆の例として、POSIXのopenシステムコールがある。これは、ファイル名、いくつかのフラグ、およびファイルモードの3つの引数を取るが、ファイルモードは、フラグにO_CREATが含まれている場合にのみ使用される(可変長引数であり、指定は任意)。フラグからO_CREATが除外されている場合、2つの引数を受け取る形式のopenを使用する(ファイルモードには未定義の値を与える)のが一般的である。
このような未定義値を制限された方法で扱うと便利な場合がある。未定義の値が後で無視された場合でも、全体的な計算は明確に定義できる。
この例として、C言語では、ポインターを整数に変換できるが、その整数の数値は未定義である。それでも、デバッグ、2つのポインターの同等性の比較、またはXORリンクリストの作成に役立つ場合がある。
未定義の値を安全に処理することは、事後に競合状態を検出する楽観的同時実行制御システムで重要になる。たとえば、 seqlockで保護されている共有変数を読み取ると、競合状態が発生したと判断する前に未定義の値が生成される。その後、未定義のデータを破棄し、操作を再試行する。これにより、未定義の値に対して実行された操作が本格的な未定義の動作を生成しない限り、定義された結果が生成される。