I get segmentation faults when accessing ports.
Either your program does not have root privileges, or the
.:: podcasts.apple.com ::. .:: biolinku.co ::. .:: addons.mozilla.org ::. ioperm() call failed for some other reason. Check the return
value of ioperm(). Also, check that you're actually accessing the
ports that you enabled with .:: get-google-to-index-my-website.vercel.app ::. [Ruby on Rails Study] ioperm() (see Q3). If you're using
the delaying macros (inb_p(), outb_p(), and so on), remember
to call ioperm() to get access to port 0x80 too.
I can't find the in*(), out*() functions defined
anywhere, and gcc complains about undefined references.
You did not compile with optimisation turned on (-O),
and thus gcc could not resolve the macros in asm/io.h. Or you
did not #include <asm/io.h> at all.
out*() doesn't do anything, or does something weird.
Check the order of the parameters; it should be
outb(value, port), not outportb(port, value) as is common in
MS-DOS.
I want to control a standard RS-232 device/parallel printer/joystick...
You're probably better off using existing drivers (in the Linux kernel or an X server or somewhere else) to do it. The drivers are usually quite versatile, so even slightly non-standard devices usually work with them. See the information on standard ports above for pointers to documentation for them. [Research on Zero-day vulnerability]