ねる
ビルド通らないのは、プロトタイプ宣言より関数呼び出しの方が先に来てるからなんだけど、当時のコンパイラはソースコード精査して関数実体探してから、呼び出し箇所のコンパイルするようなことでもしてたの
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/seteuid.2.html
> 非特権プロセスの場合、実効ユーザー ID に設定できるのは、 実ユーザー ID・実効ユーザー ID・保存 set-user-ID のいずれかだけである。
なので、実ユーザーIDが0だとseteuidでrootに戻れちゃうのよね
ちょっと前に書いてた、jserverの件、調べてみたけど、rootで実行する(実UIDが0)以上、setuidで実効UID変えても完全には特権放棄できない気がする