#自分も man ioctl 見てそう思ったのですが、実際のヘッダでは unsigned long int で宣言されているようです。
#% echo '#include <sys/ioctl.h>' | cc -E - | grep extern
extern int ioctl (int __fd, unsigned long int __request, ...) __attribute__ ((__nothrow__ , __leaf__));
#上のは ubuntu 14.04 での結果です。
#ありゃ、そりゃドキュメントのバグですね。まあ使われ方からしてもu_longが妥当だと思います。
#web で検索すると unsinged long な man page がでてくるので、新しいのでは直ってるのかも。 http://man7.org/linux/man-pages/man2/ioctl.2.html #ubuntu 14.04でデフォルトでインストールされてるmanpageはフォーマットされた日付が2000-09-21だ。ずいぶん古いなあ。
#厄介そうに見えた問題が案外あっさり解決した。
#上に書いてたpass4の問題のこと