| /*
 * example.c: очень простой пример для порта ввода/вывода
 *
 * Этот код не делает ничего полезного, только запись в порт, пауза,
 * и чтение из порта. Откомпилируйте `gcc -O2 -o example example.c',
 * и запустите под root `./example'.
 */
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#define BASEPORT 0x378 /* lp1 */
int main()
{
  /* Получить доступ к порту */
  if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
  
  /* Вывод в порт (0) */
  outb(0, BASEPORT);
  
  /* Задержка (100 мс) */
  usleep(100000);
  
  /* Чтение из порта (BASEPORT+1) и вывод результатов на экран */
  printf("статус: %d\n", inb(BASEPORT + 1));
  /* Мы больше не нуждаемся больше в порту */
  if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
  exit(0);
}
/* конец example.c */
 |