次に、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);