/dev/ioを利用したI/Oポートの叩き方ですが、主にFreeBSDの検索ページ
/* プリンター8bitOUTPUT制御プログラム */ #include <stdio.h> #include <stdlib.h> #include <machine/cpufunc.h> #define P_DATE 0x40 /* プリンターデータOUT PORT address*/ main() { int x; char s[100]; if(open("/dev/io",000)<0){ fprintf(stderr,"can't open /dev/io\n"); exit(1); } while(1){ fputs("input>",stdout); gets(s); x = atoi(s); if ( (x < 0) || (x >= 256) || (s[0] == NULL)) continue; if ( s[0] == 'q' ) exit(1); outb(P_DATE,x); } }これは入力された0から256までの数値をプリンターポートに出力するというも のです。見てもらえれば分かるように、DOSでI/O制御するのとほとんど変りま せん。違いと言えば一番始めに書かれている machine/cpufunc.h のインクルー ドと/dev/ioのオープンぐらいです。outbが指定したポートへの出力で、inbが 指定したポートの読み込です。