losa je praksa koristiti ioperm, iz vise razloga
1. kod nije portabilan na ostale POSIX sisteme
2. zaobilazite drajver i njegovu politiku pristupa hardveru
3. program zahteva u setuid pa je samim tim opasnost ukoliko ima u sebi neko prelivanje memorije opasnije po bezbednost sistema.
Ono sto savetujem jeste da se koristi open/read/write/lseek/close sistemski pozivi i ioctl po potrebi za sav pristup hardveru.
U konkretnom slucaju napravi bitmasku i salji na file deskriptor na kojem si otvorio paralelni port.
I kada pricamo o losoj praksi samo da jos napomenem da je lose otvarati hardverske uredjaje po imenu jer se od distribucije do distribucije to razlikuje, primera radi neko ima devfs neko ne na racunaru. Ono po cemu prepoznajes device jeste po major i minor broju. konkretno paralelni portovi imaju major 99 a parport0 ima minor 0 parport1 ima minor 1 itd...
Major i minor mozete videti sistemskim pozivom stat (man 2 stat).