Portál AbcLinuxu, 27. dubna 2024 05:44


Dotaz: C a paralelni port

16.10.2003 18:53 Martin
C a paralelni port
Přečteno: 152×
Odpovědět | Admin
Dobrý den,

mám napsanou jednoduchou aplikaci v Pascalu pro DOS, která mimo jiné zapisuje data na paralelní port. Teď bych jí potřeboval přepsat do jazyka C tak, aby pracovala pod Linuxem. V Pascalu jsem potřeboval pro zápis na port pod DOSem příkaz

Port[adresa portu] := data;

Potřeboval bych vědět, jak provést zápis dat na paralelní port pod Linuxem. Zatím nemám žádné zkušenosti s programováním pod Linuxem. Vím, že Linux používá pro přístup k zařízením soubory v adresáři /dev. Mohl by mi někdo poradit, jak na to? Pokud možno nějak konkrétně. Díky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.10.2003 19:16 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše C a paralelni port
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj,

/dev/lp0 je neco jako na dosu zarizeni prn... Takze pokud je to aplikace typu vyblit data na tiskarnu tak muzes jit touto cestou. Muzes zkusit co ti udela echo <nejake dato> > /dev/lp0 to dato se forwardne na PP. Pokud je to velmi jednoducha aplikace, muzes ji nahradit klidne shell scriptem ktery realizuje neco podobneho.

Jinak v cecku pod linuxem jako v jinem cecku pres outp(), coz tu nema cenu vysvetlovat, pokud neumis cecko tak se ho budes ucit a stejne to v knizce kterou budes mit bude napsane :-) Jen pripominka, zapis na porty funguje pouze uzivateli root. Proto te tlacim do tech zarizeni, pac tady neni problem dat je do nejake groupy nebo jim upravit prava podle potreby.

Takze zaver, jestli je fuka jak jdou data ven, pouzi /dev zarizeni. Jestli to jedno neni, potrebujes nejake brutal presne casovani nebo nevim co, tak zapisem na porty, ale pojede to jen rootovi. Ted neresim ze by si dal suid bit na aplikaci, to radeji nedelej pokud to ma bezet nekde v ostrem provozu kde je kladen duraz na bezpecnost, pac predstava ze bys napoprve z hole louky napsal aplikaci ktera by byla bezpecna je docela naivni :-( takze by toho mohl nekdo zneuzit. Tim te nechci srazet, neber to tedy prosim osobne, ale opravdu napsat aplikaci jakztakz bezpecne je problem.

Hodne stesti, zatim
-djz

"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
Josef Kufner avatar 16.10.2003 21:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše C a paralelni port
outp() jsem pouzival jeste v dosu, ale pod linuxem se to tvarilo, ze tuto funkci nezna... stejne dobre poslouzi outb(). ale nejdrive je potreba si zajistit pravo k pristupu na port volanim ioperm() a to se povede jen rootovi.
Hello world ! Segmentation fault (core dumped)
16.10.2003 21:10 Tomáš Bláha
Rozbalit Rozbalit vše C a paralelni port
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžete si také stáhnout zdrojáky projektu parashell ze sourceforge.net a inspirovat se jimy.
17.10.2003 09:49 Tom
Rozbalit Rozbalit vše C a paralelni port
Doporucuji vrele tento odkaz. http://www.circlemud.org/~jelson/software/parapin/ Tuto knihovnu sam pouzivam pro komunikaci s paralelnim portem a musim rici, ze vse slape jak hodinky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.