星野(Zin)です。

> そういえば, NT には実行ユーザと実ユーザとの区別はあるのでしょ
> うか?  もしなければ test ?r の実装は eaccess() を使わずに
> access() でいいことになると思うのですが. どなたか NT に詳し
> い方, 教えて頂けないでしょうか.

NTとUNIX系ではセキュリティーモデルにかなり違いがあるため、
どのように擦りあわせるか検討する必要があると思いますが、た
しかプロセス/スレッドの実行ユーザ(実ユーザ)を変更するこ
とはできないはずです。
Cygwinではどう対処しているのでしょうか。私はこちらに関して
は素人なのでわかりません。

移植性を考えると、常に実効ユーザと実ユーザが同じで変更でき
ないとして実装するのがいいと思うので、test ?r などについて
はちばさんの意見に賛成です。

eaccess の中身の

#else  /* !NT*/
	return 0;
#endif

を

#else  /* !NT*/
	return eaccess(path, mode);
#endif

にすれば良いのではないでしょうか。


# Windowsでパッチを作る方法をしらないのでご容赦


---------
Zin