次に、setfpriv(1) をブラケット化すべき位置を示すコメントが入った、アプリケーションコードの本体の例を示します。
PRIV_EMPTY(&priv_get); PRIV_EMPTY(&priv_set); /* 有効セット内で file_setpriv をオン (有効) にする */ retval = setfpriv(execfile, PRIV_SET, PRIV_ALLOWED, &priv_get); /* file_setpriv 特権をオフ (無効) にする */ if((string = str_to_priv_set(priv_names, &priv_set, "$")) != NULL) printf("string = %s errno = %d¥n", string, errno); /* 有効セット内で file_setpriv をオン (有効) にする */ retval = setfpriv(execfile,PRIV_ON, PRIV_ALLOWED, &priv_set); /* file_setpriv 特権をオフ (無効) にする */ retval = getfpriv(execfile, PRIV_ALLOWED, &priv_get); priv_set_to_str(&priv_get, '$', buffer, &length); printf("execfile Allowed = %s¥n", buffer); PRIV_EMPTY(&priv_set); PRIV_EMPTY(&priv_get); PRIV_ASSERT(&priv_set, PRIV_FILE_MAC_WRITE); /* 有効セット内で file_setpriv をオン (有効) にする */ retval = setfpriv(execfile, PRIV_ON, PRIV_FORCED, &priv_set); /* file_setpriv 特権をオフ (無効) にする */ retval = getfpriv(execfile, PRIV_FORCED, &priv_get); priv_set_to_str(&priv_get, `$', buffer, &length); printf("execfile Forced =%s¥n", buffer);