Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kernel-Modul unter Linux / Lesen und Schreiben in Device-File

4 views
Skip to first unread message

Matthias Hotzel

unread,
May 27, 2001, 1:17:00 PM5/27/01
to
Hallo Forum,

folgendes Problemchen:
ich habe ein Modul geschrieben, welches Daten über den Parallelport auf
eine Platine ausgibt oder von dieser Daten einliest.
Dazu habe ich mir ein kleine Proggis geklimpert, welches die Funktionalität
testet.

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>

int main(void)
{
int fd;
char buffer[10];

fd = open("/dev/platine", O_RDONLY );
read (fd, buffer, 5);
printf("Puffer: %s\n", buffer);
close(fd);

fd = open("/dev/platine", O_WRONLY );
write(fd, buffer, 5);
close(fd);

return 0;
}

So funzt das auch, nur möchte ich das Schließen und erneute Öffnen der
Datei zum Schreiben unterbinden, d.h. die Datei zum Lesen und Schreiben
öffnen und hintereinander die Daten der Platine gleich wieder auf die
Patine ausgeben. Wenn ich das mache, tut sich nichts, d.h. die Werte kommen
nicht im Puffer des Modules an. Muß ich u.U. den Offset wieder auf den
"Anfang" der Datei setzen ? Wie mache ich das ? fseek() kann ich ja nicht
anwenden, wenn ich mit read()/write() arbeite. Oder doch ?

Danke.

--
----------------------------------------------------------------
| Matthias Hotzel Public-Key: http://www.mhotzel.de |
| e-mail: mho...@bigfoot.de Tel: 0173/9716053 |
----------------------------------------------------------------

Felix von Leitner

unread,
May 27, 2001, 1:39:27 PM5/27/01
to
Thus spake Matthias Hotzel (mho...@bigfoot.de):

> return 0;
> }

Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.

Wenn dir noch nicht einmal die Semantik von open() und der
lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
programmieren.

Felix

Matthias Hotzel

unread,
May 27, 2001, 1:35:02 PM5/27/01
to
Sorry,

ich traf auf seek() - und siehe da, es half ;-)

Ciao

Matthias Hotzel

unread,
May 27, 2001, 1:49:05 PM5/27/01
to
Sorry, hat sich schon erledigt.

lseek() hat mir geholfen :-)

Matthias Hotzel

unread,
May 27, 2001, 1:53:34 PM5/27/01
to
Felix von Leitner schrieb:

>der doch ?
>
> Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
> Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.
>
> Wenn dir noch nicht einmal die Semantik von open() und der
> lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
> programmieren.
>
> Felix

Oh Mann, Du hast wohl gleich mit einem Schiss Weisheit im Hirn angefangen ?
Und Du mußt meine Versuche ja nicht produktiv einsetzen ! Wenn Du mich
nicht für voll nimmst, dann ignorier mich doch einfach !

Im Gegenzug könntest Du die Usenet-Regeln lesen (Stichwort Fullquote).

So - Dein Name landet auf meiner Arroganzliste ganz oben und wird nun
ignoriert.

Gunnar Ritter

unread,
May 27, 2001, 3:50:15 PM5/27/01
to
Matthias Hotzel <mho...@bigfoot.de> wrote:

> Felix von Leitner schrieb:


>> Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
>> Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.
>>
>> Wenn dir noch nicht einmal die Semantik von open() und der
>> lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
>> programmieren.
>

> Oh Mann, Du hast wohl gleich mit einem Schiss Weisheit im Hirn angefangen ?

Das Problem ist aber, daß Felix hier vollkommen recht hat. Eine Lösung
für Deine Frage hat er Dir nebenbei auch noch gegeben.

> Wenn Du mich nicht für voll nimmst, dann ignorier mich doch einfach !

Ich persönlich würde mich ja schämen, solche Fragen in der
Öffentlichkeit zu stellen. Wenn Du es trotzdem tust, mußt Du mit
allergischen Reaktionen rechnen.

>>
>> Felix


>
> Im Gegenzug könntest Du die Usenet-Regeln lesen (Stichwort Fullquote).

Stichwort »Sinnvolles Zitieren«. Außerdem plenkst Du.

> So - Dein Name landet auf meiner Arroganzliste ganz oben und wird nun
> ignoriert.

Nimm mich doch bitte auch noch dazu. Wenn Du jemanden plonkst, kannst
Du nämlich keine doofen Antworten mehr auf seine Postings schreiben.
Mit ein wenig Hirn würde man daraus ableiten, daß Plonken nur für
Fortgeschrittene ist.

Flup2 poster.

Grüße,
Gunnar

Sven Geggus

unread,
May 29, 2001, 2:52:16 AM5/29/01
to
Matthias Hotzel <mho...@bigfoot.de> wrote:

> So funzt das auch, nur möchte ich das Schließen und erneute Öffnen der
> Datei zum Schreiben unterbinden, d.h. die Datei zum Lesen und Schreiben
> öffnen und hintereinander die Daten der Platine gleich wieder auf die
> Patine ausgeben.

Sollte eigentlich ebenfalls funktionieren.

> Wenn ich das mache, tut sich nichts, d.h. die Werte kommen
> nicht im Puffer des Modules an. Muß ich u.U. den Offset wieder auf den
> "Anfang" der Datei setzen ?

Nein! Dein Problem ist aber schlecht einzugrenzen ohne den zugehoerigen
Kernelcode zu kennen.

Sven


--
"In my opinion MS is a lot better at making money than it is at making good
operating systems" (Linus Torvalds, August 1997)

/me is giggls@ircnet, http://geggus.net/sven/ on the Web

0 new messages