PDA

View Full Version : [c] Linux:porta parallela


mastoo
31-12-2006, 09:05
Ho fatto questo banalissimo programma per la usare la porta parallela sotto linux

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>



int main()
{
unsigned int n,v;

scanf("%x",&n);//numero della porta
scanf("%x",&v);//valore da scrivere


if (ioperm(n,1,1)) {perror("ioperm()"); exit(1);}

outb(v,n);

return 0;
}

funziona solo come utente root
si puo farlo funzionare anche come utente non privilegiato

grazie in anticipo

recoil
02-01-2007, 08:46
che io sappia no, o lo lanci come root o metti il suid al tuo programma

ilsensine
02-01-2007, 11:38
Per quale motivo vuoi usare le non-portabili, non-concorrenti, insicure e concettualmente sbagliate inb/outb/ioperm ecc?

Se devi accedere specificamente alla parallela, usa il driver ppdev (puņ essere fatto anche da utente, con opportuna configurazione). Se invece vuoi accedere a una generica porta di i/o (non vuoi), usa il device /dev/port.